<?xml version="1.0" encoding="UTF-8"?>
    
    <rss version="2.0"><channel><title>dev-language Git changes</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/changes</link><description>dev-language Git changes</description><item><title>#232 Update XapiStateResource to enforce permission requirements: allow access to state only for the authenticated users related xapi agents. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail0</link><guid isPermaLink="false">job/dev-language/232/changes#detail0</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiAgentProfileResourceHttpClientTest.kt
lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiActivityProfileResourceNanoHttpdTest.kt
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/GetAuthenticatedXapiAgentsUseCaseDbImpl.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/auth/GetAuthenticatedXapiAgentsUseCase.kt
lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/WithEmbeddedDataSourceServer.kt
lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStateResourceDbTest.kt
lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiStatementResourceNanoHttpdTest.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiAgentProfileResourceRepositoryTest.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStateResourceRepositoryTest.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiAgentProfileResourceRepositoryIntegrationTest.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/WithEmbeddedServerAndRepoClients.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt
README_ADD_YOUR_APP.md
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentProfileResourceDbTest.kt
lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiStateResourceNanoHttpdTest.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/AbstractXapiDocumentResourceRepositoryIntegrationTest.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStateResourceDb.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryIntegrationTest.kt
lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/WithNanoHttpdXapiResource.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStateResourceRepositoryIntegrationTest.kt
lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/NewLocalDataSource.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiDocumentResourceTest.kt
lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiAgentProfileResourceNanoHttpdTest.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt
lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStateResourceHttpClientTest.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiStateResourceTest.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
</description></item><item><title>#232 Update XapiAgentProfileResourceDb to enforce permission requirements: allow access to state only for the authenticated users related xapi agents. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail1</link><guid isPermaLink="false">job/dev-language/232/changes#detail1</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentProfileResourceDb.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentProfileResourceDbTest.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiAgentProfileResourceTest.kt
</description></item><item><title>#232 Add XapiDocument bundle adapter for IPC (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail2</link><guid isPermaLink="false">job/dev-language/232/changes#detail2</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-ipc-shared/build.gradle.kts
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt
lib-xapi-ipc-shared/README.md
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/XapiDocumentAdapter.kt
.junie/guidelines.md
lib-xapi-ipc-shared/AGENTS.md
lib-xapi-ipc-shared/src/androidTest/java/world/respect/xapi/ipc/shared/messages/ext/XapiDocumentAdapterTest.kt
lib-datalayer-db/AGENTS.md
</description></item><item><title>#232 Add XapiStatementResource IPC tests and update IPC bundle serialization (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail3</link><guid isPermaLink="false">job/dev-language/232/changes#detail3</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiStatementResourceIpcTest.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataLoadStateExt.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataReadyStateExt.kt
lib-xapi-ipc-client/AGENTS.md
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt
lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/WithXapiResourceIpc.kt
lib-xapi-ipc-server/AGENTS.md
lib-xapi-ipc-shared/AGENTS.md
</description></item><item><title>#232 Initial implementation of XapiStateResource over IPC and refactor xapi-ipc tests to use the same abstract tests used for database, http, and repository implementations. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail4</link><guid isPermaLink="false">job/dev-language/232/changes#detail4</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiStatementResourceIpcTest.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStateResourceIpcClient.kt
lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/XapiDocumentAdapter.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt
lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/WithXapiResourceIpc.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt
lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiStateResourceIpcTest.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt
lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt
lib-xapi-ipc-server/build.gradle.kts
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceFlags.kt
</description></item><item><title>#232 Add Bundle query parameter helpers and update xAPI IPC to use Parameters (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail5</link><guid isPermaLink="false">job/dev-language/232/changes#detail5</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStateResourceIpcClient.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiAgentProfileResource.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/BundleParameters.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStateResource.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleStringValues.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/ParametersExt.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
</description></item><item><title>#232 Refactor XapiIpcResourceFlags and add XapiIpcResourceAndMethod (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail6</link><guid isPermaLink="false">job/dev-language/232/changes#detail6</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceEnum.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStateResourceIpcClient.kt
lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiStateResourceIpcTest.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcMethodEnum.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceAndMethod.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceFlags.kt
</description></item><item><title>#232 Refactor XapiIpcService message handling into dedicated resource handlers. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail7</link><guid isPermaLink="false">job/dev-language/232/changes#detail7</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/ext/AbstractDocumentResourceIncomingHandler.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcResourceIncomingHandler.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/StatementsResourceIncomingHandler.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/ext/XapiResourceProviderExt.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcStateResourceIncomingHandler.kt
</description></item><item><title>#232 Add BundleHeaders and refactor IPC bundle header and query parameter helpers (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail8</link><guid isPermaLink="false">job/dev-language/232/changes#detail8</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStateResourceIpcClient.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/BundleHeaders.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/HeadersExt.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataLoadStateExt.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcStateResourceIncomingHandler.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/ext/AbstractDocumentResourceIncomingHandler.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/StatementsResourceIncomingHandler.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt
</description></item><item><title>#232 Handle document resource IPC requests asynchronously (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail9</link><guid isPermaLink="false">job/dev-language/232/changes#detail9</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/MessengerExt.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/ext/AbstractDocumentResourceIncomingHandler.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStateResourceIpcClient.kt
lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiStateResourceIpcTest.kt
</description></item><item><title>#232 Handle xAPI IPC server statement resource requests asynchronously and add flow completion cleanup helper (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail10</link><guid isPermaLink="false">job/dev-language/232/changes#detail10</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/ext/AbstractDocumentResourceIncomingHandler.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/StatementsResourceIncomingHandler.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/ext/FlowCollectorExt.kt
</description></item><item><title>#232 Add Activity Profile and Agent Profile IPC support. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail11</link><guid isPermaLink="false">job/dev-language/232/changes#detail11</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStateResourceIpcClient.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcActivityProfileResourceIncomingHandler.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcAgentProfileResourceIncomingHandler.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt
lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiAgentProfileResourceIpcTest.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiActivityProfileResourceIpcClient.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiActivityProfileResourceIpcTest.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/ext/MessageDataExt.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceFlags.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiAgentProfileResourceIpcClient.kt
</description></item><item><title>#232 Use throwXapiExceptionIfStatusNotSuccessful extension in xAPI IPC resource clients (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail12</link><guid isPermaLink="false">job/dev-language/232/changes#detail12</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStateResourceIpcClient.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiAgentProfileResourceIpcClient.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiActivityProfileResourceIpcClient.kt
</description></item><item><title>#232 Add tests for retrieving xAPI documents as Flow and fix IPC flow completion (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail13</link><guid isPermaLink="false">job/dev-language/232/changes#detail13</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiDocumentResourceTest.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt
lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeMessengerImpl.kt
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/ext/AbstractDocumentResourceIncomingHandler.kt
lib-xapi-test/build.gradle.kts
lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/WithXapiResourceIpc.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiDocumentAssertions.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiAgentProfileResourceTest.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiStateResourceTest.kt
</description></item><item><title>#232 Quote ETag values in xAPI document resources and queries (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail14</link><guid isPermaLink="false">job/dev-language/232/changes#detail14</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiDocumentResourceTest.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiAgentProfileDocumentDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentProfileResourceDb.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentProfileResourceDbTest.kt
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStateResourceDbTest.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ETagAndLastModified.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStateResourceDb.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDocumentDao.kt
</description></item><item><title>#232 Set package on ACTION_LAUNCH intent when launching OpenEEL apps. Avoid launching a native app that is not actually linked to the given publication. Fixes issue #321 (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail15</link><guid isPermaLink="false">job/dev-language/232/changes#detail15</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/src/main/kotlin/world/respect/AppKoinModule.kt
lib-shared/src/jvmTest/kotlin/world/respect/shared/domain/launchapp/GetAndroidPackageIdForLaunchableAppUseCaseTest.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpenEelConstants.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/publicationdetail/PublicationDetailViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/GetAndroidPackageIdForLaunchableAppUseCase.kt
</description></item><item><title>#232 Remove empty Hindi `strings.xml` in `lib-appui-compose` (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail16</link><guid isPermaLink="false">job/dev-language/232/changes#detail16</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-appui-compose/src/androidMain/res/values-hi/strings.xml
</description></item><item><title>#232 Remove Nepali strings resource (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/232/changes#detail17</link><guid isPermaLink="false">job/dev-language/232/changes#detail17</guid><pubDate>Fri, 2 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-shared/src/commonMain/composeResources/values-ne/strings.xml
</description></item><item><title>#231 Remove devModeEnabled check for settings icon visibility in AppLauncherViewModel (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/231/changes#detail0</link><guid isPermaLink="false">job/dev-language/231/changes#detail0</guid><pubDate>Thu, 1 Oct 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/006_001_user_set_language_on_app_test.yaml
</description></item><item><title>#230 Remove devModeEnabled check for settings icon visibility in AppLauncherViewModel (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/230/changes#detail0</link><guid isPermaLink="false">job/dev-language/230/changes#detail0</guid><pubDate>Wed, 30 Sep 2026 19:27:02 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
</description></item><item><title>#229 Hide keyboard in `get_started_select_school_by_name.yaml` (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/229/changes#detail0</link><guid isPermaLink="false">job/dev-language/229/changes#detail0</guid><pubDate>Wed, 30 Sep 2026 15:29:26 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/get_started_select_school_by_name.yaml
</description></item><item><title>#229 Set keyboard type to Ascii for username and school name fields (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/229/changes#detail1</link><guid isPermaLink="false">job/dev-language/229/changes#detail1</guid><pubDate>Wed, 30 Sep 2026 15:29:26 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/login/LoginScreen.kt
</description></item><item><title>#229 Set keyboard type to Ascii for username and school name fields (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/229/changes#detail2</link><guid isPermaLink="false">job/dev-language/229/changes#detail2</guid><pubDate>Wed, 30 Sep 2026 15:29:26 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/get_started_select_school_by_name.yaml
</description></item><item><title>#226 Refactor: remove unused accountManager (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail0</link><guid isPermaLink="false">job/dev-language/226/changes#detail0</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 creating list of category from string.xml (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1</link><guid isPermaLink="false">job/dev-language/226/changes#detail1</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 feat: Implement feedback submission functionality (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail2</link><guid isPermaLink="false">job/dev-language/226/changes#detail2</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
</description></item><item><title>#226 feat: Implement feedback ticket submission (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail3</link><guid isPermaLink="false">job/dev-language/226/changes#detail3</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 Refactored share feedback view model (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail4</link><guid isPermaLink="false">job/dev-language/226/changes#detail4</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncher.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 Refact: Move feedback data source to school data source (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail5</link><guid isPermaLink="false">job/dev-language/226/changes#detail5</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
</description></item><item><title>#226 Refactor: Renamed `ticketTitle` to `subject` for clarity. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail6</link><guid isPermaLink="false">job/dev-language/226/changes#detail6</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 Moved hardcoded values for WhatsApp, web URLs, and email recipients to a companion object in `ShareFeedbackViewModel`. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail7</link><guid isPermaLink="false">job/dev-language/226/changes#detail7</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 Moved hardcoded values for WhatsApp, web URLs, and email recipients to a companion object in `ShareFeedbackViewModel`. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail8</link><guid isPermaLink="false">job/dev-language/226/changes#detail8</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 feat: Add validation to share feedback screen (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail9</link><guid isPermaLink="false">job/dev-language/226/changes#detail9</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
</description></item><item><title>#226 Refactor (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail10</link><guid isPermaLink="false">job/dev-language/226/changes#detail10</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
</description></item><item><title>#226 Refactor (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail11</link><guid isPermaLink="false">job/dev-language/226/changes#detail11</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item><item><title>#226 feat: Removed email from contact validation on feedback form. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail12</link><guid isPermaLink="false">job/dev-language/226/changes#detail12</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
</description></item><item><title>#226 feat: Removed email from contact validation on feedback form. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail13</link><guid isPermaLink="false">job/dev-language/226/changes#detail13</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 Fix: Share feedback contact validation (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail14</link><guid isPermaLink="false">job/dev-language/226/changes#detail14</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 Appends the user's phone number to the body of the feedback ticket being created. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail15</link><guid isPermaLink="false">job/dev-language/226/changes#detail15</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 Appends the user's phone number to the body of the feedback ticket being created. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail16</link><guid isPermaLink="false">job/dev-language/226/changes#detail16</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 Appends the user's phone number to the body of the feedback ticket being created. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail17</link><guid isPermaLink="false">job/dev-language/226/changes#detail17</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt
</description></item><item><title>#226 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. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail18</link><guid isPermaLink="false">job/dev-language/226/changes#detail18</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
</description></item><item><title>#226 Refactor: Separate contact field validation on feedback form (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail19</link><guid isPermaLink="false">job/dev-language/226/changes#detail19</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
</description></item><item><title>#226 feat: Add feedback submitted screen (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail20</link><guid isPermaLink="false">job/dev-language/226/changes#detail20</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt
</description></item><item><title>#226 Appends the user's phone number to the body of the feedback ticket being created. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail21</link><guid isPermaLink="false">job/dev-language/226/changes#detail21</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 Appends the user's phone number to the body of the feedback ticket being created. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail22</link><guid isPermaLink="false">job/dev-language/226/changes#detail22</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 Appends the user's phone number to the body of the feedback ticket being created. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail23</link><guid isPermaLink="false">job/dev-language/226/changes#detail23</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
</description></item><item><title>#226 Appends the user's phone number to the body of the feedback ticket being created. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail24</link><guid isPermaLink="false">job/dev-language/226/changes#detail24</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
</description></item><item><title>#226 Appends the user's phone number to the body of the feedback ticket being created. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail25</link><guid isPermaLink="false">job/dev-language/226/changes#detail25</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-lib-shared/src/commonMain/composeResources/drawable/feedback_sent.xml
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-app-compose/build.gradle.kts
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt
</description></item><item><title>#226 feat: Display submission error on feedback form (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail26</link><guid isPermaLink="false">job/dev-language/226/changes#detail26</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
</description></item><item><title>#226 added end-to-end test (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail27</link><guid isPermaLink="false">job/dev-language/226/changes#detail27</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 feat: Cleared share feedback screen from backstack (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail28</link><guid isPermaLink="false">job/dev-language/226/changes#detail28</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt
</description></item><item><title>#226 refactor (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail29</link><guid isPermaLink="false">job/dev-language/226/changes#detail29</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt
</description></item><item><title>#226 Refactor contact validation error on feedback form (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail30</link><guid isPermaLink="false">job/dev-language/226/changes#detail30</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 Update Gradle and remove log files (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail31</link><guid isPermaLink="false">job/dev-language/226/changes#detail31</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>gradle/wrapper/gradle-wrapper.properties
gradle/libs.versions.toml
respect-datalayer-repository/log/respect-server.2026-01-14.0.log
gradle.properties
</description></item><item><title>#226 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. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail32</link><guid isPermaLink="false">job/dev-language/226/changes#detail32</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-app-compose/build.gradle.kts
</description></item><item><title>#226 added validations (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail33</link><guid isPermaLink="false">job/dev-language/226/changes#detail33</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/add_person_create_account.yaml
.maestro/flows/004_user_send_feedback_test.yaml
.maestro/flows/subflows/school_user_login_flow.yaml
</description></item><item><title>#226 refactor: Integrate FeedbackDataSource into SchoolDataSource (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail34</link><guid isPermaLink="false">job/dev-language/226/changes#detail34</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
</description></item><item><title>#226 Handle feedback submission errors and hide navigation (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail35</link><guid isPermaLink="false">job/dev-language/226/changes#detail35</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 Refactor: Append "UseCase" to launcher class names (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail36</link><guid isPermaLink="false">job/dev-language/226/changes#detail36</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncher.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncher.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncher.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherAndroid.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.kt
</description></item><item><title>#226 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`. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail37</link><guid isPermaLink="false">job/dev-language/226/changes#detail37</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/sharefeedback/FeedbackDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/FeedBackDataSource.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
respect-app-compose/build.gradle.kts
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-lib-shared/build.gradle.kts
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/sharefeedback/FeedBackDataSourceRepository.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
</description></item><item><title>#226 feat: Refactored feedback property names for clarity and consistency. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail38</link><guid isPermaLink="false">job/dev-language/226/changes#detail38</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/build.gradle.kts
respect-app-compose/build.gradle.kts
</description></item><item><title>#226 Update build.gradle.kts (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail39</link><guid isPermaLink="false">job/dev-language/226/changes#detail39</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/build.gradle.kts
</description></item><item><title>#226 Update AppKoinModule.kt (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail40</link><guid isPermaLink="false">job/dev-language/226/changes#detail40</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item><item><title>#226 feat: Integrate Zammad for feedback submission and refactor configuration (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail41</link><guid isPermaLink="false">job/dev-language/226/changes#detail41</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCaseImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt
respect-lib-shared/build.gradle.kts
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/ZammadTicketResponse.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-app-compose/build.gradle.kts
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/sharefeedback/model/FeedbackTicket.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCaseImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt
</description></item><item><title>#226 feat: Display Zammad ticket ID on feedback submission screen (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail42</link><guid isPermaLink="false">job/dev-language/226/changes#detail42</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt
</description></item><item><title>#226 removed feedback changes from 003 (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail43</link><guid isPermaLink="false">job/dev-language/226/changes#detail43</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 feat: Hide Zammad ticket ID on feedback submission screen (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail44</link><guid isPermaLink="false">job/dev-language/226/changes#detail44</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt
</description></item><item><title>#226 Refactor: Remove redundant quotes in error message string (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail45</link><guid isPermaLink="false">job/dev-language/226/changes#detail45</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
</description></item><item><title>#226 Refactor: Clear error message on submit (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail46</link><guid isPermaLink="false">job/dev-language/226/changes#detail46</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 removed feedback changes from 003 (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail47</link><guid isPermaLink="false">job/dev-language/226/changes#detail47</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/004_user_send_feedback_test.yaml
</description></item><item><title>#226 removed (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail48</link><guid isPermaLink="false">job/dev-language/226/changes#detail48</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/004_user_send_feedback_test.yaml
</description></item><item><title>#226 feat: Update feedback response string (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail49</link><guid isPermaLink="false">job/dev-language/226/changes#detail49</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
</description></item><item><title>#226 updated (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail50</link><guid isPermaLink="false">job/dev-language/226/changes#detail50</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/004_user_send_feedback_test.yaml
.maestro/flows/subflows/school_admin_login_flow.yaml
</description></item><item><title>#226 refactor: Removed unused log file and import. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail51</link><guid isPermaLink="false">job/dev-language/226/changes#detail51</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/log/respect-server.2026-01-14.0.log
</description></item><item><title>#226 feat: Update feedback form strings for clarity (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail52</link><guid isPermaLink="false">job/dev-language/226/changes#detail52</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
</description></item><item><title>#226 Hide the user account icon on the "Share Feedback" and "Feedback Submitted" screens. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail53</link><guid isPermaLink="false">job/dev-language/226/changes#detail53</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 updated API call (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail54</link><guid isPermaLink="false">job/dev-language/226/changes#detail54</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/004_user_send_feedback_test.yaml
ci-run-maestro.sh
.gitignore
.maestro/flows/scripts/verifyZammadTicket.js
</description></item><item><title>#226 updated API call (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail55</link><guid isPermaLink="false">job/dev-language/226/changes#detail55</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/004_user_send_feedback_test.yaml
</description></item><item><title>#226 updated maestro.sh (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail56</link><guid isPermaLink="false">job/dev-language/226/changes#detail56</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 updated 004 test (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail57</link><guid isPermaLink="false">job/dev-language/226/changes#detail57</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/004_user_send_feedback_test.yaml
</description></item><item><title>#226 The `FeedbackCategory` enum has been refactored This change is reflected in the `ShareFeedbackScreen` (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail58</link><guid isPermaLink="false">job/dev-language/226/changes#detail58</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
</description></item><item><title>#226 The `FeedbackCategory` enum has been refactored This change is reflected in the `ShareFeedbackScreen` (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail59</link><guid isPermaLink="false">job/dev-language/226/changes#detail59</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
</description></item><item><title>#226 Refactor: Cleaned up feedback submission code (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail60</link><guid isPermaLink="false">job/dev-language/226/changes#detail60</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.kt
</description></item><item><title>#226 Refactor: Cleaned up feedback submission code (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail61</link><guid isPermaLink="false">job/dev-language/226/changes#detail61</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item><item><title>#226 refactor: Improve Share Feedback screen code structure and accessibility (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail62</link><guid isPermaLink="false">job/dev-language/226/changes#detail62</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
</description></item><item><title>#226 updated properties file path (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail63</link><guid isPermaLink="false">job/dev-language/226/changes#detail63</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/004_user_send_feedback_test.yaml
ci-run-maestro.sh
.maestro/flows/scripts/verifyZammadTicket.js
</description></item><item><title>#226 updated properties file path (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail64</link><guid isPermaLink="false">job/dev-language/226/changes#detail64</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
.maestro/flows/scripts/verifyZammadTicket.js
</description></item><item><title>#226 updated (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail65</link><guid isPermaLink="false">job/dev-language/226/changes#detail65</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 updated maestro.sh file (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail66</link><guid isPermaLink="false">job/dev-language/226/changes#detail66</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 chore: Add server logs to gitignore. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail67</link><guid isPermaLink="false">job/dev-language/226/changes#detail67</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/log/respect-server.2026-02-01.0.log
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/log/respect-server.2026-01-30.0.log
respect-lib-shared/log/respect-server.2026-01-29.0.log
respect-datalayer-repository/log/respect-server.2026-01-30.0.log
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-lib-shared/log/respect-server.2026-02-01.0.log
</description></item><item><title>#226 chore: Add server logs to gitignore. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail68</link><guid isPermaLink="false">job/dev-language/226/changes#detail68</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/log/respect-server.2026-01-30.0.log
respect-datalayer-repository/log/respect-server.2026-02-01.0.log
respect-lib-shared/log/respect-server.2026-01-29.0.log
respect-datalayer-repository/log/respect-server.2026-01-30.0.log
respect-lib-shared/log/respect-server.2026-02-01.0.log
</description></item><item><title>#226 updated maestro.sh file (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail69</link><guid isPermaLink="false">job/dev-language/226/changes#detail69</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/add_person_create_account.yaml
</description></item><item><title>#226 updated case (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail70</link><guid isPermaLink="false">job/dev-language/226/changes#detail70</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
.maestro/flows/scripts/verifyZammadTicket.js
</description></item><item><title>#226 updated url (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail71</link><guid isPermaLink="false">job/dev-language/226/changes#detail71</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 test cleanup (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail72</link><guid isPermaLink="false">job/dev-language/226/changes#detail72</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
.maestro/flows/scripts/verifyZammadTicket.js
</description></item><item><title>#226 Refactor: Consolidate email launching logic into LaunchSendEmailUseCase. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail73</link><guid isPermaLink="false">job/dev-language/226/changes#detail73</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/EmailLauncherUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt
</description></item><item><title>#226 feat: using material theme (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail74</link><guid isPermaLink="false">job/dev-language/226/changes#detail74</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt
</description></item><item><title>#226 Work in progress: model Respect App manifest using OPDS. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail75</link><guid isPermaLink="false">job/dev-language/226/changes#detail75</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt
</description></item><item><title>#226 Add architecture and system to handle Opds for both external sources (eg. compatible apps) and internal (school playlists). (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail76</link><guid isPermaLink="false">job/dev-language/226/changes#detail76</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/3.json
gradle/gradle-daemon-jvm.properties
settings.gradle.kts
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
</description></item><item><title>#226 Work in progress making OpdsFeed a writable entity as per other entities in the school database. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail77</link><guid isPermaLink="false">job/dev-language/226/changes#detail77</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-lib-opds-model/build.gradle.kts
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeedMetadata.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedMetadataEntity.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt
</description></item><item><title>#226 Work in progress making OpdsFeed a writable entity as per other entities in the school database. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail78</link><guid isPermaLink="false">job/dev-language/226/changes#detail78</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json
</description></item><item><title>#226 Implement write support for OpdsFeed including handling etag and last-modified header for non-RESPECT generated feeds. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail79</link><guid isPermaLink="false">job/dev-language/226/changes#detail79</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt
respect-datalayer-repository/README.md
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/BaseDataSourceValidationHelper.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt
</description></item><item><title>#226 Add OpdsFeed validation helper implementation. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail80</link><guid isPermaLink="false">job/dev-language/226/changes#detail80</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt
</description></item><item><title>#226 Make OpdsFeed writable to handle playlists: work in progress. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail81</link><guid isPermaLink="false">job/dev-language/226/changes#detail81</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsDataSourceRepository.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSourceLocal.kt
</description></item><item><title>#226 Update documentation on OpdsFeedDataSource on how external/internal data is handled. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail82</link><guid isPermaLink="false">job/dev-language/226/changes#detail82</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt
</description></item><item><title>#226 test - updated test description (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail83</link><guid isPermaLink="false">job/dev-language/226/changes#detail83</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-test-end-to-end/test-description/006_user_signup_using_passkey_test_description.md
respect-test-end-to-end/README.md
.maestro/flows/004_user_send_feedback_test.yaml
respect-test-end-to-end/test-description/006_002_user_send_feedback_test.md
.maestro/flows/006_002_user_send_feedback_test.yaml
respect-test-end-to-end/test-description/007_001_user_signup_using_passkey_test_description.md
</description></item><item><title>#226 Update FeedbackCategory.kt (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail84</link><guid isPermaLink="false">job/dev-language/226/changes#detail84</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt
</description></item><item><title>#226 Make Opds Feed writable: make initial working client - server integration test. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail85</link><guid isPermaLink="false">job/dev-language/226/changes#detail85</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt
respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt
</description></item><item><title>#226 Move OpdsPublication data source to follow same naming pattern. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail86</link><guid isPermaLink="false">job/dev-language/226/changes#detail86</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsDataSourceDb.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsPublicationDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSourceLocal.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsDataSourceRepository.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsDataSource.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
</description></item><item><title>#226 Update OpdsPublicationDataSourceRepository to follow pattern as per OpdsFeedRepository. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail87</link><guid isPermaLink="false">job/dev-language/226/changes#detail87</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt
</description></item><item><title>#226 OpdsPublicationDataSource improvements (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail88</link><guid isPermaLink="false">job/dev-language/226/changes#detail88</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt
respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsPublicationDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsPublicationEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/RespectAppManifestExt.kt
</description></item><item><title>#226 Improvements to handling OpdsPublication and OpdsFeed / related entities. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail89</link><guid isPermaLink="false">job/dev-language/226/changes#detail89</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-app-compose/build.gradle.kts
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-server/build.gradle.kts
respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedMetadataEntityDao.kt
</description></item><item><title>#226 Add 304 response support to UstadCacheImpl. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail90</link><guid isPermaLink="false">job/dev-language/226/changes#detail90</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt
respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HttpHeadersExt.kt
</description></item><item><title>#226 Add unit test for UstadCache to verify 304 response is returned correctly when incoming request has validation info. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail91</link><guid isPermaLink="false">job/dev-language/226/changes#detail91</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImpl.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HttpPathResponse.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NewFileFromResource.kt
</description></item><item><title>#226 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. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail92</link><guid isPermaLink="false">job/dev-language/226/changes#detail92</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt
</description></item><item><title>#226 Add test checking 304 not modified response received using interceptor if cache validation headers are used. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail93</link><guid isPermaLink="false">job/dev-language/226/changes#detail93</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt
</description></item><item><title>#226 Remove CompatibleApp Datasource (replaced by using OpdsPublication). (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail94</link><guid isPermaLink="false">job/dev-language/226/changes#detail94</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/CompatibleAppDataSourceDb.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepositoryTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/CompatibleAppsDataSourceLocal.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/compatibleapps/CompatibleAppDataSourceRepository.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/compatibleapps/CompatibleAppDataSourceHttp.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/CompatibleAppsDataSource.kt
</description></item><item><title>#226 Remove CompatibleAppEntity from database. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail95</link><guid isPermaLink="false">job/dev-language/226/changes#detail95</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/entities/CompatibleAppEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/adapters/CompatbileAppAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/entities/CompatibleAppAddJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/daos/CompatibleAppAddJoinDao.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/4.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/compatibleapps/daos/CompatibleAppEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt
</description></item><item><title>#226 Initial commit (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail96</link><guid isPermaLink="false">job/dev-language/226/changes#detail96</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt
</description></item><item><title>#226 added tab (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail97</link><guid isPermaLink="false">job/dev-language/226/changes#detail97</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt
</description></item><item><title>#226 Update ci-run-maestro.sh and school_init.js with option to disable automatic school creation for end-to-end tests. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail98</link><guid isPermaLink="false">job/dev-language/226/changes#detail98</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/README.md
.maestro/flows/scripts/school_init.js
ci-run-maestro.sh
</description></item><item><title>#226 added test for school-self-registration (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail99</link><guid isPermaLink="false">job/dev-language/226/changes#detail99</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_005_add_school_self_service.yaml
.maestro/flows/subflows/school_admin_login_flow.yaml
</description></item><item><title>#226 updated test (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail100</link><guid isPermaLink="false">job/dev-language/226/changes#detail100</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_005_add_school_self_service.yaml
</description></item><item><title>#226 updated test 001_002 (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail101</link><guid isPermaLink="false">job/dev-language/226/changes#detail101</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_005_add_school_self_service.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
</description></item><item><title>#226 updated test- added id for the Host URL (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail102</link><guid isPermaLink="false">job/dev-language/226/changes#detail102</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_002_add_user_direct_test.yaml
</description></item><item><title>#226 Fixes for AppLauncher screen. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail103</link><guid isPermaLink="false">job/dev-language/226/changes#detail103</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt
</description></item><item><title>#226 initial commit for add school self service bug fix (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail104</link><guid isPermaLink="false">job/dev-language/226/changes#detail104</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolValidationRoute.kt
respect-server/src/main/kotlin/world/respect/server/util/SchoolUrlVerificationManager.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCaseAndroid.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/verify/VerifySchoolUrlPointsToThisServerUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCase.kt
</description></item><item><title>#226 Update opds packages in datasource-db and datasource-http to use school.opds package. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail105</link><guid isPermaLink="false">job/dev-language/226/changes#detail105</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/ReadiumSubjectEntityAdapters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFacetAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedMetadataEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsPublicationEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsTypeConverters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFeedMetadataEntityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsPublicationEntityDao.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsGroupEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumLinkEntityAdapter.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsPublicationDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedMetadataEntityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsPublicationEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumLinkEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/PersonPasskeyEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsGroupEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/ReadiumLinkEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/ReadiumLinkEntityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsGroupAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumSubjectEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsFacetAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsGroupEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsFeedEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/PersonPasskeyEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFacetEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/adapters/OpdsPublicationEntityAdapter.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedMetadataEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsFeedDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsGroupEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedMetadataEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsParentType.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/OpdsPublicationEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsPublicationDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumSubjectEntityAdapters.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/LangMapEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumLinkEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/OpdsTypeConverters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/ReadiumSubjectEntity.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/opds/OpdsFeedDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedMetadataEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsParentType.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/daos/ReadiumLinkEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFacetEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/opds/entities/OpdsFeedEntity.kt
</description></item><item><title>#226 Update database migration files. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail106</link><guid isPermaLink="false">job/dev-language/226/changes#detail106</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt
</description></item><item><title>#226 Initial home tabs design. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail107</link><guid isPermaLink="false">job/dev-language/226/changes#detail107</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onaccountcreated/NavigateOnAccountCreatedUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt
</description></item><item><title>#226 updated maestro.sh (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail108</link><guid isPermaLink="false">job/dev-language/226/changes#detail108</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 playlist screen added (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail109</link><guid isPermaLink="false">job/dev-language/226/changes#detail109</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSection.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/list/CurriculumMappingListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/CurriculumMappingAdapter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/list/CurriculumMappingListScreen.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSectionLink.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMapping.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt
</description></item><item><title>#226 playlist screen added (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail110</link><guid isPermaLink="false">job/dev-language/226/changes#detail110</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt
</description></item><item><title>#226 - Update `ci-run-maestro.sh` to remove a commented-out line and refine `TESTCONTROLLER_URL` parsing. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail111</link><guid isPermaLink="false">job/dev-language/226/changes#detail111</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
.maestro/flows/001_002_add_user_direct_test.yaml
</description></item><item><title>#226 fix the myplaylist (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail112</link><guid isPermaLink="false">job/dev-language/226/changes#detail112</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/edit/CurriculumMappingEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt
</description></item><item><title>#226 Move Maestro test flows for inviting users, login, assignments, and browsing lessons into a new `TestFolder` directory. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail113</link><guid isPermaLink="false">job/dev-language/226/changes#detail113</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/flows/TestFolder/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/TestFolder/001_003_login_using_school_link_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows/TestFolder/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows/TestFolder/002_browse_lessons_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 add logs for testing (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail114</link><guid isPermaLink="false">job/dev-language/226/changes#detail114</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt
</description></item><item><title>#226 add logs for testing (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail115</link><guid isPermaLink="false">job/dev-language/226/changes#detail115</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt
</description></item><item><title>#226 add logs for testing (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail116</link><guid isPermaLink="false">job/dev-language/226/changes#detail116</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt
</description></item><item><title>#226 add logs for testing (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail117</link><guid isPermaLink="false">job/dev-language/226/changes#detail117</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt
</description></item><item><title>#226 add logs for testing (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail118</link><guid isPermaLink="false">job/dev-language/226/changes#detail118</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/AndroidManifest.xml
</description></item><item><title>#226 add logs for testing (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail119</link><guid isPermaLink="false">job/dev-language/226/changes#detail119</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/AndroidManifest.xml
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt
</description></item><item><title>#226 Add Maestro subflows to handle Chrome's first-run experience screens and integrate them into the `001_002_add_user_direct_test` flow. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail120</link><guid isPermaLink="false">job/dev-language/226/changes#detail120</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/chrome-first-run-check.yaml
.maestro/flows/subflows/chrome-first-run-tap-notification-no-thanks.yaml
.maestro/flows/subflows/chrome-first-run-accept-and-continue.yaml
.maestro/flows/subflows/chrome-first-run-tap-accept-or-use-without-account.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/subflows/chrome-first-run-without-account.yaml
.maestro/flows/subflows/chrome-first-run-accept-ad-privacy.yaml
</description></item><item><title>#226 Update Maestro flow to tap on school URL using text instead of ID. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail121</link><guid isPermaLink="false">job/dev-language/226/changes#detail121</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_002_add_user_direct_test.yaml
</description></item><item><title>#226 add logs for testing (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail122</link><guid isPermaLink="false">job/dev-language/226/changes#detail122</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt
</description></item><item><title>#226 add logs for testing (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail123</link><guid isPermaLink="false">job/dev-language/226/changes#detail123</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt
</description></item><item><title>#226 update url with school-directory (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail124</link><guid isPermaLink="false">job/dev-language/226/changes#detail124</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt
</description></item><item><title>#226 Move Maestro flows from `TestFolder` to the root `.maestro/flows/` directory. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail125</link><guid isPermaLink="false">job/dev-language/226/changes#detail125</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/flows/TestFolder/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/TestFolder/001_003_login_using_school_link_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows/TestFolder/002_browse_lessons_test.yaml
.maestro/flows/TestFolder/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 remove  logs (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail126</link><guid isPermaLink="false">job/dev-language/226/changes#detail126</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt
</description></item><item><title>#226 test: Update UI labels in Maestro flows and add Playlist browse test (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail127</link><guid isPermaLink="false">job/dev-language/226/changes#detail127</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/flows/subflows/admin_add_app.yaml
.maestro/flows/002_browse_lessons_test.yaml
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/video.mp4
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/lesson002.html
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/cover.png
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/lesson002.json
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/subflows/admin_add_app_and_teacher.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/subflows/school_admin_login_flow.yaml
</description></item><item><title>#226 Add Lesson 002 to grade1.json (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail128</link><guid isPermaLink="false">job/dev-language/226/changes#detail128</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json
</description></item><item><title>#226 Add Lesson 002 to grade1.json (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail129</link><guid isPermaLink="false">job/dev-language/226/changes#detail129</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json
</description></item><item><title>#226 Add Maestro end-to-end test and documentation for school self-registration. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail130</link><guid isPermaLink="false">job/dev-language/226/changes#detail130</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-test-end-to-end/README.md
.maestro/flows/001_002_add_user_direct_test.yaml
.gitignore
.maestro/flows/001_005_add_school_self_registration_test.yaml
respect-test-end-to-end/test-description/001_005_add_school_self_registration_test_description.md
</description></item><item><title>#226 Add Maestro end-to-end test and documentation for school self-registration. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail131</link><guid isPermaLink="false">job/dev-language/226/changes#detail131</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.gitignore
</description></item><item><title>#226 Update the file path for the `get_started_select_school_by_name.yaml` subflow in the Maestro test configuration. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail132</link><guid isPermaLink="false">job/dev-language/226/changes#detail132</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_002_add_user_direct_test.yaml
</description></item><item><title>#226 Update Maestro test flow to use school name variable instead of skipping school creation. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail133</link><guid isPermaLink="false">job/dev-language/226/changes#detail133</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_002_add_user_direct_test.yaml
</description></item><item><title>#226 Update Slack Space link in README (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail134</link><guid isPermaLink="false">job/dev-language/226/changes#detail134</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>README.md
</description></item><item><title>#226 test - updated maestro flows (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail135</link><guid isPermaLink="false">job/dev-language/226/changes#detail135</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 fix the homescreen (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail136</link><guid isPermaLink="false">job/dev-language/226/changes#detail136</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt
</description></item><item><title>#226 Minor school self registration tidyup. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail137</link><guid isPermaLink="false">job/dev-language/226/changes#detail137</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt
</description></item><item><title>#226 Refactor RegisterSchoolUseCase : Create common interface that can be used to keep parameter names, request/response objects, etc. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail138</link><guid isPermaLink="false">job/dev-language/226/changes#detail138</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt
</description></item><item><title>#226 fix the homescreen (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail139</link><guid isPermaLink="false">job/dev-language/226/changes#detail139</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt
</description></item><item><title>#226 added the edit screen (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail140</link><guid isPermaLink="false">job/dev-language/226/changes#detail140</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
</description></item><item><title>#226 Remove validation logic that was either unnecessary or did not belong in the SchoolRegistrationRoute. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail141</link><guid isPermaLink="false">job/dev-language/226/changes#detail141</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/school/add/RegisterSchoolUseCaseTest.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt
respect-server/src/main/resources/application.conf
respect-server/src/main/kotlin/world/respect/server/SchoolConfig.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt
</description></item><item><title>#226 Fixes for subdomain based school self-registration. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail142</link><guid isPermaLink="false">job/dev-language/226/changes#detail142</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt
respect-server/src/main/resources/application.conf
respect-lib-shared/src/jvmTest/kotlin/world/respect/domain/school/add/RegisterSchoolUseCaseTest.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt
respect-server/src/main/kotlin/world/respect/server/SchoolConfig.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt
</description></item><item><title>#226 Fix handling of icon image on AppLauncherscreen (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail143</link><guid isPermaLink="false">job/dev-language/226/changes#detail143</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt
</description></item><item><title>#226 Remove white space changes from main. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail144</link><guid isPermaLink="false">job/dev-language/226/changes#detail144</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt
respect-app-compose/src/androidMain/AndroidManifest.xml
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt
</description></item><item><title>#226 Bump version. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail145</link><guid isPermaLink="false">job/dev-language/226/changes#detail145</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/build.gradle.kts
</description></item><item><title>#226 Initial Xapi Statement serialization model and test. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail146</link><guid isPermaLink="false">job/dev-language/226/changes#detail146</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiException.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionType.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json
respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActor.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/Attachment.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/State.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json
</description></item><item><title>#226 Update XapiStatement property types to use Instant and Duration where appr (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail147</link><guid isPermaLink="false">job/dev-language/226/changes#detail147</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt
respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/DurationAsISO8601Serializer.kt
</description></item><item><title>#226 Initial implementation of converting Xapi models into local db entities. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail148</link><guid isPermaLink="false">job/dev-language/226/changes#detail148</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementContextActivityJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiEntityObjectTypeFlags.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiSessionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/XapiSessionEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/GroupMemberActorJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/UuidExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActorEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateDeleteCommand.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActorDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndRelated.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityJson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityInteractionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/GroupMemberActorJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateDeleteCommandDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiSessionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbDao.kt
respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/ListExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityExtensionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntityJson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiEntityObjectTypeFlags.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/VerbEntityAndName.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementContextActivityJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementAndActivity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateDeleteCommand.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt
</description></item><item><title>#226 Minor tidyup of typing. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail149</link><guid isPermaLink="false">job/dev-language/226/changes#detail149</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt
</description></item><item><title>#226 Add StoreActivitiesUseCase and requirements. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail150</link><guid isPermaLink="false">job/dev-language/226/changes#detail150</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateDeleteCommandDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementContextActivityJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityExtensionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/XapiSessionEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/GroupMemberActorJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateDeleteCommandDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActorDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt
respect-datalayer-db/build.gradle.kts
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAttachment.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/Attachment.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityInteractionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiState.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/State.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDaoCommon.kt
</description></item><item><title>#226 add share screen (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail151</link><guid isPermaLink="false">job/dev-language/226/changes#detail151</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/share/PlaylistShareScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item><item><title>#226 Initial commit of a version of XapiStatementDataSourceDb.kt that compiles. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail152</link><guid isPermaLink="false">job/dev-language/226/changes#detail152</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/ActorUidEtagAndLastMod.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorDaoExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt
</description></item><item><title>#226 fix Playlist share screen (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail153</link><guid isPermaLink="false">job/dev-language/226/changes#detail153</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/CreatePlaylistShareLinkUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item><item><title>#226 added the releation link (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail154</link><guid isPermaLink="false">job/dev-language/226/changes#detail154</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt
</description></item><item><title>#226 fix the build error (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail155</link><guid isPermaLink="false">job/dev-language/226/changes#detail155</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt
</description></item><item><title>#226 Update README.md (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail156</link><guid isPermaLink="false">job/dev-language/226/changes#detail156</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>README.md
</description></item><item><title>#226 Create CONTRIBUTING.md (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail157</link><guid isPermaLink="false">job/dev-language/226/changes#detail157</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>CONTRIBUTING.md
</description></item><item><title>#226 Update CONTRIBUTING.md to clarify contribution types (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail158</link><guid isPermaLink="false">job/dev-language/226/changes#detail158</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>CONTRIBUTING.md
</description></item><item><title>#226 Add Contributor Covenant Code of Conduct (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail159</link><guid isPermaLink="false">job/dev-language/226/changes#detail159</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>CODE_OF_CONDUCT.md
</description></item><item><title>#226 Revise CONTRIBUTING.md (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail160</link><guid isPermaLink="false">job/dev-language/226/changes#detail160</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>CONTRIBUTING.md
</description></item><item><title>#226 Revise CONTRIBUTING.md (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail161</link><guid isPermaLink="false">job/dev-language/226/changes#detail161</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>CONTRIBUTING.md
</description></item><item><title>#226 Add issue template for app catalog requests (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail162</link><guid isPermaLink="false">job/dev-language/226/changes#detail162</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD
</description></item><item><title>#226 Update CONTRIBUTING.md (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail163</link><guid isPermaLink="false">job/dev-language/226/changes#detail163</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>CONTRIBUTING.md
</description></item><item><title>#226 Create localization.MD (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail164</link><guid isPermaLink="false">job/dev-language/226/changes#detail164</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.github/ISSUE_TEMPLATE/localization.MD
</description></item><item><title>#226 Update CONTRIBUTING.md (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail165</link><guid isPermaLink="false">job/dev-language/226/changes#detail165</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>CONTRIBUTING.md
</description></item><item><title>#226 Update CONTRIBUTING.md (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail166</link><guid isPermaLink="false">job/dev-language/226/changes#detail166</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>CONTRIBUTING.md
</description></item><item><title>#226 Update contributing.md (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail167</link><guid isPermaLink="false">job/dev-language/226/changes#detail167</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>CONTRIBUTING.md
</description></item><item><title>#226 Add contributing guidelines to README (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail168</link><guid isPermaLink="false">job/dev-language/226/changes#detail168</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>README.md
</description></item><item><title>#226 Fix link formatting in README.md (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail169</link><guid isPermaLink="false">job/dev-language/226/changes#detail169</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>README.md
</description></item><item><title>#226 update `002_user_add_apps_playlists_bookmarks_test.yaml` Maestro flow to include Home navigation and verify Playlists visibility (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail170</link><guid isPermaLink="false">job/dev-language/226/changes#detail170</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 update `002_user_add_apps_playlists_bookmarks_test.yaml` Maestro flow to include Home navigation and verify Playlists visibility (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail171</link><guid isPermaLink="false">job/dev-language/226/changes#detail171</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 Update Maestro test flows for user and app management (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail172</link><guid isPermaLink="false">job/dev-language/226/changes#detail172</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
</description></item><item><title>#226 Update Maestro test flows to reflect UI change from "Apps" to "Home" title text (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail173</link><guid isPermaLink="false">job/dev-language/226/changes#detail173</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_005_add_school_self_registration_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
</description></item><item><title>#226 Updated `002_user_add_apps_playlists_bookmarks_test.yaml` Maestro flow to match UI text change for playlist creation. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail174</link><guid isPermaLink="false">job/dev-language/226/changes#detail174</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 fix test for "home" and added the id (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail175</link><guid isPermaLink="false">job/dev-language/226/changes#detail175</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt
</description></item><item><title>#226 Update and refine Maestro end-to-end test flows for user assignments and playlists (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail176</link><guid isPermaLink="false">job/dev-language/226/changes#detail176</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 fix the code (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail177</link><guid isPermaLink="false">job/dev-language/226/changes#detail177</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
</description></item><item><title>#226 implement playlist selection logic and improve validation in PlaylistEdit (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail178</link><guid isPermaLink="false">job/dev-language/226/changes#detail178</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
</description></item><item><title>#226 fix the test (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail179</link><guid isPermaLink="false">job/dev-language/226/changes#detail179</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 update labels in AssignmentEditScreen (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail180</link><guid isPermaLink="false">job/dev-language/226/changes#detail180</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
</description></item><item><title>#226 update labels in AssignmentEditScreen (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail181</link><guid isPermaLink="false">job/dev-language/226/changes#detail181</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
</description></item><item><title>#226 fix the assignment to follow the flow. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail182</link><guid isPermaLink="false">job/dev-language/226/changes#detail182</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
</description></item><item><title>#226 update titles in respect-ds and adjust Maestro test assertions (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail183</link><guid isPermaLink="false">job/dev-language/226/changes#detail183</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/case_valid/index.json
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json
.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 fix the flow. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail184</link><guid isPermaLink="false">job/dev-language/226/changes#detail184</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt
</description></item><item><title>#226 fix the flow. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail185</link><guid isPermaLink="false">job/dev-language/226/changes#detail185</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 fix the flow. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail186</link><guid isPermaLink="false">job/dev-language/226/changes#detail186</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 Refactor learning unit selection and playlist editing. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail187</link><guid isPermaLink="false">job/dev-language/226/changes#detail187</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt
</description></item><item><title>#226 Refactor onClickAssignSection to support optional indices and replace exceptions with early returns. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail188</link><guid isPermaLink="false">job/dev-language/226/changes#detail188</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
</description></item><item><title>#226 Refactor onClickAssignSection to support optional indices and replace exceptions with early returns. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail189</link><guid isPermaLink="false">job/dev-language/226/changes#detail189</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
</description></item><item><title>#226 Assignment support (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail190</link><guid isPermaLink="false">job/dev-language/226/changes#detail190</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
</description></item><item><title>#226 fix assignment navigation (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail191</link><guid isPermaLink="false">job/dev-language/226/changes#detail191</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
</description></item><item><title>#226 update maestro test flow and fix element IDs (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail192</link><guid isPermaLink="false">job/dev-language/226/changes#detail192</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 fix share (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail193</link><guid isPermaLink="false">job/dev-language/226/changes#detail193</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 refactor assignmentedit (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail194</link><guid isPermaLink="false">job/dev-language/226/changes#detail194</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
</description></item><item><title>#226 Fix issue #209 (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail195</link><guid isPermaLink="false">job/dev-language/226/changes#detail195</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt
respect-app-compose/src/androidMain/AndroidManifest.xml
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt
</description></item><item><title>#226 Update LaunchCustomTabUseCase to use Url type. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail196</link><guid isPermaLink="false">job/dev-language/226/changes#detail196</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt
</description></item><item><title>#226 Update default base catalog url. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail197</link><guid isPermaLink="false">job/dev-language/226/changes#detail197</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/build.gradle.kts
respect-app-compose/build.gradle.kts
</description></item><item><title>#226 Bump version number. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail198</link><guid isPermaLink="false">job/dev-language/226/changes#detail198</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/build.gradle.kts
</description></item><item><title>#226 fix assignment navigation (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail199</link><guid isPermaLink="false">job/dev-language/226/changes#detail199</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 update maestro test flow to hide keyboard (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail200</link><guid isPermaLink="false">job/dev-language/226/changes#detail200</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 Update StatementEntities on XapiStatemenTAdapter to follow the same pattern as other adapter data classes. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail201</link><guid isPermaLink="false">job/dev-language/226/changes#detail201</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
</description></item><item><title>#226 Adapter to convert from Xapi Statement entities into (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail202</link><guid isPermaLink="false">job/dev-language/226/changes#detail202</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityObjectTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/StatementDbEntities.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementAndActivity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt
</description></item><item><title>#226 Add confirmation feedback guideline for user actions (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail203</link><guid isPermaLink="false">job/dev-language/226/changes#detail203</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>DESIGN_GUIDELINES.md
</description></item><item><title>#226 Add GetActiveUsernameUseCase and refactor Playlist handling (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail204</link><guid isPermaLink="false">job/dev-language/226/changes#detail204</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/GetActiveUsernameUseCase.kt
</description></item><item><title>#226 Improvements to storing xapi activity in the database. Introduce enums to replace integer flags on room entities. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail205</link><guid isPermaLink="false">job/dev-language/226/changes#detail205</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntryPropEnum.kt
</description></item><item><title>#226 Improvements for XapiActivity database storage: use enum for interaction type. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail206</link><guid isPermaLink="false">job/dev-language/226/changes#detail206</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionTypeEnum.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionType.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
</description></item><item><title>#226 Xapi Statement and Activity storage: work in progress. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail207</link><guid isPermaLink="false">job/dev-language/226/changes#detail207</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/UuidExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiSerializers.kt
</description></item><item><title>#226 Refactor PlaylistListViewModel (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail208</link><guid isPermaLink="false">job/dev-language/226/changes#detail208</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt
</description></item><item><title>#226 Refactor sample statements into a single module. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail209</link><guid isPermaLink="false">job/dev-language/226/changes#detail209</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-lib-test-resources/build.gradle.kts
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json
respect-datalayer/build.gradle.kts
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/group-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/simple-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json
respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json
settings.gradle.kts
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json
respect-datalayer-db/build.gradle.kts
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/Readme.txt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json
respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json
respect-lib-test-resources/README.md
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json
</description></item><item><title>#226 Update design guidelines for screen inclusion (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail210</link><guid isPermaLink="false">job/dev-language/226/changes#detail210</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>DESIGN_GUIDELINES.md
</description></item><item><title>#226 Update handling of sample statements. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail211</link><guid isPermaLink="false">job/dev-language/226/changes#detail211</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/BuildFlags.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/IntExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt
respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
</description></item><item><title>#226 Implement assertions to check proper serialization of Xapi Activity. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail212</link><guid isPermaLink="false">job/dev-language/226/changes#detail212</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
</description></item><item><title>#226 Add Xapi assertions to validate expected/actual statement object. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail213</link><guid isPermaLink="false">job/dev-language/226/changes#detail213</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
</description></item><item><title>#226 Further improvements to converting statements to/from entities and assertions (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail214</link><guid isPermaLink="false">job/dev-language/226/changes#detail214</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
</description></item><item><title>#226 xAPI entity improvements (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail215</link><guid isPermaLink="false">job/dev-language/226/changes#detail215</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntityTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoinTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
</description></item><item><title>#226 Improvements to handling activity entities conversion. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail216</link><guid isPermaLink="false">job/dev-language/226/changes#detail216</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt
</description></item><item><title>#226 Improvements to handling statement storage to/from entities. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail217</link><guid isPermaLink="false">job/dev-language/226/changes#detail217</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivityDefinition.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt
</description></item><item><title>#226 initial commit (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail218</link><guid isPermaLink="false">job/dev-language/226/changes#detail218</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/Externallinkeditviewmodel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/Externallinkeditscreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
</description></item><item><title>#226 Improve handling serialization/deserialization of xapi activities and actors (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail219</link><guid isPermaLink="false">job/dev-language/226/changes#detail219</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActivityExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
</description></item><item><title>#226 Handle serialization/deserialization and tests for statement context activities. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail220</link><guid isPermaLink="false">job/dev-language/226/changes#detail220</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
</description></item><item><title>#226 commit (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail221</link><guid isPermaLink="false">job/dev-language/226/changes#detail221</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/Externallinkeditviewmodel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCase.kt
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/cover.png
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/externallink/OpenExternalLinkUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/Externallinkeditscreen.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/OpenExternalLinkUseCaseAndroid.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/cover.png
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
</description></item><item><title>#226 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. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail222</link><guid isPermaLink="false">job/dev-language/226/changes#detail222</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 Improvements to handling storing / updating Xapi Activities. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail223</link><guid isPermaLink="false">job/dev-language/226/changes#detail223</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/StatementDbEntities.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndRelated.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityJson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt
</description></item><item><title>#226 Fix handling of last modified time for XapiActivity db datasource. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail224</link><guid isPermaLink="false">job/dev-language/226/changes#detail224</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorDaoExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
</description></item><item><title>#226 initial commit (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail225</link><guid isPermaLink="false">job/dev-language/226/changes#detail225</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentFilter.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSource.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 initial commit (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail226</link><guid isPermaLink="false">job/dev-language/226/changes#detail226</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
</description></item><item><title>#226 initial commit (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail227</link><guid isPermaLink="false">job/dev-language/226/changes#detail227</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
</description></item><item><title>#226 Initial implementation of converting statements from database entities back to the model. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail228</link><guid isPermaLink="false">job/dev-language/226/changes#detail228</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/ListExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt
</description></item><item><title>#226 Work in progress implementation of deserializing statements from the database. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail229</link><guid isPermaLink="false">job/dev-language/226/changes#detail229</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt
</description></item><item><title>#226 Update XapiStatementDataSourceDbTest to use new database for each example statement. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail230</link><guid isPermaLink="false">job/dev-language/226/changes#detail230</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
</description></item><item><title>#226 Refactor and modularize Maestro E2E test flows for admin and class management. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail231</link><guid isPermaLink="false">job/dev-language/226/changes#detail231</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/admin_add_class_with_members.yaml
.maestro/flows/subflows/create_account_for_class_member.yaml
.maestro/flows/subflows/admin_add_new_student_to_class.yaml
.maestro/flows/subflows/admin_add_app.yaml
.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml
.maestro/flows/subflows/admin_add_app_and_teacher.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Handle context activity joins for substatement. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail232</link><guid isPermaLink="false">job/dev-language/226/changes#detail232</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
</description></item><item><title>#226 Standardize Xapi class names in datalayer-db (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail233</link><guid isPermaLink="false">job/dev-language/226/changes#detail233</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiGroupMemberActorJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntityPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntryPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntityTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityInteractionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementContextActivityJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntryPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntityTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityObjectTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateDeleteCommand.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateDeleteCommandDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoinTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityObjectTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiGroupMemberActorJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDeleteCommand.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDeleteCommandDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoin.kt
</description></item><item><title>#226 Implement ExtractWebPageMetadataUseCaseAndroid for extracting metadata from web pages (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail234</link><guid isPermaLink="false">job/dev-language/226/changes#detail234</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt
.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCase.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item><item><title>#226 update assignment deatils screen with student progression section (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail235</link><guid isPermaLink="false">job/dev-language/226/changes#detail235</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentStatusFilter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 Implement Xapi Statement search by agent and related agents. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail236</link><guid isPermaLink="false">job/dev-language/226/changes#detail236</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt
</description></item><item><title>#226 Add support for since/until search in XapiStatementDataSourceDb (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail237</link><guid isPermaLink="false">job/dev-language/226/changes#detail237</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
</description></item><item><title>#226 Move statements read into a transaction. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail238</link><guid isPermaLink="false">job/dev-language/226/changes#detail238</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt
</description></item><item><title>#226 Fix compilation of http and repo modules (still just using the local package). (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail239</link><guid isPermaLink="false">job/dev-language/226/changes#detail239</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
</description></item><item><title>#226 App crash fix (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail240</link><guid isPermaLink="false">job/dev-language/226/changes#detail240</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt
</description></item><item><title>#226 Initial implementation of xapi statements search by activity uid. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail241</link><guid isPermaLink="false">job/dev-language/226/changes#detail241</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt
</description></item><item><title>#226 Update Maestro flows for assignment management and class member creation. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail242</link><guid isPermaLink="false">job/dev-language/226/changes#detail242</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/subflows/admin_add_class_with_members.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/subflows/school_user_login_flow.yaml
</description></item><item><title>#226 Include substatement, where present, in related activities search as per spec. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail243</link><guid isPermaLink="false">job/dev-language/226/changes#detail243</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
</description></item><item><title>#226 test: update field labels in Maestro assignment flow (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail244</link><guid isPermaLink="false">job/dev-language/226/changes#detail244</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Add support for order and limit in XapiStatementDataSourceDb (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail245</link><guid isPermaLink="false">job/dev-language/226/changes#detail245</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
</description></item><item><title>#226 bring everything that is in lib-database from Ustad into Respect (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail246</link><guid isPermaLink="false">job/dev-language/226/changes#detail246</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentSubmissionFile.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrolmentRequest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentProgressSummary.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ErrorReport.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiSessionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LeavingReason.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupAssignmentSummary.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CacheLockJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoinWithLanguage.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/GroupMemberActorJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithDisplayDetails.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SiteTerms.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryPicture2.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StatementReportData.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PeerReviewerAllocationList.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActorEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithHolidayCalendarAndAndTerminology.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAuth.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/DateConstants.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupWithMemberCount.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/HolidayCalendarWithNumEntries.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJobError.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActorDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SystemPermission.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryButtonModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithPerson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryVersion.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UmAccount.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityInteractionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/SystemPermissionDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Language.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAuth2.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Schedule.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ConnectivityStatus.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CoursePicture.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Clazz.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PeerReviewerAllocation.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UidAndLabel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryImportJob.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLog.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentWithAttemptSummary.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignment.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntityJson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityExtensionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemParentChildJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrantAndName.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiEntityObjectTypeFlags.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementContextActivityJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithDetails.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DeletedItem.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonNameAndUid.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Holiday.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithLeavingReason.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Site.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupMember.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryContentCategoryJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AverageCourseAssignmentMark.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLogAttendanceRecordWithPerson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LangUidAndName.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryPicture.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJob.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseTerminology.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoinWithLangName.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrant.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UserSession.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithPerson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithAttemptsSummary.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryParentChildJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SiteTermsWithLanguage.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithClazz.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLogAttendanceRecord.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzInvite.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasskey.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Message.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementContextActivityJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/StateIdAndLastModified.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StudentResult.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/HolidayCalendar.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ParentEnrolmentRequired.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJobItem.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/XapiSessionEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Comments.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPicture.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonParentJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryStatementScoreProgress.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrantWithName.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJob.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithLanguage.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportQueryResult.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolment.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StatementEntityAndDisplayDetails.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemProgress.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/OfflineItem.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupMember.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignmentRollUp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateDeleteCommand.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/ActorUidEtagAndLastMod.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentCategory.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentMarkWithPersonMarker.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithClazzAndAttendance.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentSubmitterAndAllocations.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentSubmitterSummary.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/PermissionFlags.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/GroupMemberActorJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentMark.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupMemberAndName.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateDeleteCommandDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentCategorySchema.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LanguageVariant.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CoursePermission.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithBlockAndLanguage.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonUidAndPasswordHash.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithListDisplayDetails.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAndDisplayDetail.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentSubmission.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonWithAttemptsSummary.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPost.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EntityConstants.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ExternalAppPermission.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseBlockPicture.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DistinctCategorySchema.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UserSessionAndPerson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemProgressAndStatus.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolPicture.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroup.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Moment.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignmentCourseBlockAndSubmitterUid.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupSet.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseBlock.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DownloadJobSizeInfo.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonParentJoinAndMinorPerson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonWithSessionsDisplay.kt
</description></item><item><title>#226 code refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail247</link><guid isPermaLink="false">job/dev-language/226/changes#detail247</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CoursePicture.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseTerminology.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrolmentRequest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DistinctCategorySchema.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithDetails.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DeletedItem.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithPerson.kt
</description></item><item><title>#226 add xapi related composites (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail248</link><guid isPermaLink="false">job/dev-language/226/changes#detail248</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/SessionTimeAndProgressInfo.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/VerbEntityAndName.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementAndActivity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StateIdAndLastModified.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndRelated.kt
</description></item><item><title>#226 remove unwanted files (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail249</link><guid isPermaLink="false">job/dev-language/226/changes#detail249</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrolmentRequest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentSubmissionFile.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentProgressSummary.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ErrorReport.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LeavingReason.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupAssignmentSummary.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CacheLockJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoinWithLanguage.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithDisplayDetails.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SiteTerms.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryPicture2.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StatementReportData.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PeerReviewerAllocationList.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithHolidayCalendarAndAndTerminology.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAuth.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupWithMemberCount.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/HolidayCalendarWithNumEntries.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJobError.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SystemPermission.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithPerson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryButtonModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UmAccount.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryVersion.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Language.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Schedule.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAuth2.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CoursePicture.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ConnectivityStatus.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PeerReviewerAllocation.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Clazz.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UidAndLabel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryImportJob.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLog.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentWithAttemptSummary.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignment.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemParentChildJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrantAndName.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithDetails.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DeletedItem.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonNameAndUid.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Holiday.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithLeavingReason.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Site.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroupMember.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryContentCategoryJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AverageCourseAssignmentMark.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLogAttendanceRecordWithPerson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LangUidAndName.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryPicture.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJob.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseTerminology.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryRelatedEntryJoinWithLangName.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrant.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UserSession.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPostWithPerson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithAttemptsSummary.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryParentChildJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SiteTermsWithLanguage.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithClazz.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzLogAttendanceRecord.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzInvite.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasskey.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Message.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StudentResult.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ParentEnrolmentRequired.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJobItem.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/HolidayCalendar.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Comments.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPicture.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonParentJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryStatementScoreProgress.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ScopedGrantWithName.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithLanguage.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/TransferJob.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolment.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/StatementEntityAndDisplayDetails.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemProgress.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/OfflineItem.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupMember.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignmentRollUp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentCategory.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentMarkWithPersonMarker.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzEnrolmentWithClazzAndAttendance.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentSubmitterAndAllocations.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentSubmitterSummary.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentMark.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupMemberAndName.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentCategorySchema.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LanguageVariant.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CoursePermission.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentEntryWithBlockAndLanguage.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonUidAndPasswordHash.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzWithListDisplayDetails.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonAndDisplayDetail.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseAssignmentSubmission.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DiscussionPost.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonWithAttemptsSummary.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EntityConstants.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ExternalAppPermission.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DistinctCategorySchema.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseBlockPicture.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/UserSessionAndPerson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ContentJobItemProgressAndStatus.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolPicture.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonGroup.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/Moment.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseGroupSet.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClazzAssignmentCourseBlockAndSubmitterUid.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/CourseBlock.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonParentJoinAndMinorPerson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/DownloadJobSizeInfo.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonWithSessionsDisplay.kt
</description></item><item><title>#226 Initial Xapi Statement serialization model and test. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail250</link><guid isPermaLink="false">job/dev-language/226/changes#detail250</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiException.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionType.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt
respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActor.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/Attachment.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/State.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json
</description></item><item><title>#226 Update XapiStatement property types to use Instant and Duration where appr (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail251</link><guid isPermaLink="false">job/dev-language/226/changes#detail251</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt
respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/DurationAsISO8601Serializer.kt
</description></item><item><title>#226 Initial implementation of converting Xapi models into local db entities. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail252</link><guid isPermaLink="false">job/dev-language/226/changes#detail252</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementContextActivityJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiEntityObjectTypeFlags.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiSessionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/XapiSessionEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/GroupMemberActorJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/UuidExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActorEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StateDeleteCommand.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActorDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndRelated.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityJson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityInteractionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/GroupMemberActorJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateDeleteCommandDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiSessionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementEntityJson.kt
respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/ListExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityExtensionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/XapiEntityObjectTypeFlags.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/VerbEntityAndName.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/VerbEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/StatementContextActivityJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/xapi/ActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementAndActivity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateDeleteCommand.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt
</description></item><item><title>#226 Minor tidyup of typing. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail253</link><guid isPermaLink="false">job/dev-language/226/changes#detail253</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt
</description></item><item><title>#226 Add StoreActivitiesUseCase and requirements. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail254</link><guid isPermaLink="false">job/dev-language/226/changes#detail254</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateDeleteCommandDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementContextActivityJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StateEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityExtensionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/XapiSessionEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/GroupMemberActorJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateDeleteCommandDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActorDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt
respect-datalayer-db/build.gradle.kts
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/Attachment.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAttachment.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/StatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/VerbLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityInteractionDao.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiState.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/State.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/xapi/ActivityLangMapEntryDaoCommon.kt
</description></item><item><title>#226 Initial commit of a version of XapiStatementDataSourceDb.kt that compiles. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail255</link><guid isPermaLink="false">job/dev-language/226/changes#detail255</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/ActorUidEtagAndLastMod.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorDaoExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt
</description></item><item><title>#226 Update StatementEntities on XapiStatemenTAdapter to follow the same pattern as other adapter data classes. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail256</link><guid isPermaLink="false">job/dev-language/226/changes#detail256</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
</description></item><item><title>#226 Adapter to convert from Xapi Statement entities into (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail257</link><guid isPermaLink="false">job/dev-language/226/changes#detail257</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityObjectTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/StatementDbEntities.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementAndActivity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
</description></item><item><title>#226 Improvements to storing xapi activity in the database. Introduce enums to replace integer flags on room entities. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail258</link><guid isPermaLink="false">job/dev-language/226/changes#detail258</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntryPropEnum.kt
</description></item><item><title>#226 Improvements for XapiActivity database storage: use enum for interaction type. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail259</link><guid isPermaLink="false">job/dev-language/226/changes#detail259</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionTypeEnum.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionType.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
</description></item><item><title>#226 Xapi Statement and Activity storage: work in progress. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail260</link><guid isPermaLink="false">job/dev-language/226/changes#detail260</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/UuidExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiSerializers.kt
</description></item><item><title>#226 Refactor sample statements into a single module. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail261</link><guid isPermaLink="false">job/dev-language/226/changes#detail261</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-lib-test-resources/build.gradle.kts
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json
respect-datalayer/build.gradle.kts
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/group-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/simple-statement.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json
respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json
settings.gradle.kts
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json
respect-datalayer-db/build.gradle.kts
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/Readme.txt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json
respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt
respect-lib-test-resources/README.md
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json
respect-datalayer/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json
</description></item><item><title>#226 Update handling of sample statements. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail262</link><guid isPermaLink="false">job/dev-language/226/changes#detail262</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/BuildFlags.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/IntExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt
respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
</description></item><item><title>#226 Implement assertions to check proper serialization of Xapi Activity. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail263</link><guid isPermaLink="false">job/dev-language/226/changes#detail263</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
</description></item><item><title>#226 Add Xapi assertions to validate expected/actual statement object. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail264</link><guid isPermaLink="false">job/dev-language/226/changes#detail264</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
</description></item><item><title>#226 Further improvements to converting statements to/from entities and assertions (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail265</link><guid isPermaLink="false">job/dev-language/226/changes#detail265</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
</description></item><item><title>#226 xAPI entity improvements (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail266</link><guid isPermaLink="false">job/dev-language/226/changes#detail266</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntityTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoinTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
</description></item><item><title>#226 Improvements to handling activity entities conversion. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail267</link><guid isPermaLink="false">job/dev-language/226/changes#detail267</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt
</description></item><item><title>#226 Improvements to handling statement storage to/from entities. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail268</link><guid isPermaLink="false">job/dev-language/226/changes#detail268</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiContextActivitiesAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivity.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivityDefinition.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt
</description></item><item><title>#226 Improve handling serialization/deserialization of xapi activities and actors (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail269</link><guid isPermaLink="false">job/dev-language/226/changes#detail269</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActivityExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
</description></item><item><title>#226 Handle serialization/deserialization and tests for statement context activities. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail270</link><guid isPermaLink="false">job/dev-language/226/changes#detail270</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
</description></item><item><title>#226 Improvements to handling storing / updating Xapi Activities. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail271</link><guid isPermaLink="false">job/dev-language/226/changes#detail271</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/StatementDbEntities.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndRelated.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityJson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntity.kt
</description></item><item><title>#226 Fix handling of last modified time for XapiActivity db datasource. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail272</link><guid isPermaLink="false">job/dev-language/226/changes#detail272</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorDaoExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
</description></item><item><title>#226 Initial implementation of converting statements from database entities back to the model. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail273</link><guid isPermaLink="false">job/dev-language/226/changes#detail273</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/ListExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt
</description></item><item><title>#226 Work in progress implementation of deserializing statements from the database. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail274</link><guid isPermaLink="false">job/dev-language/226/changes#detail274</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt
</description></item><item><title>#226 Update XapiStatementDataSourceDbTest to use new database for each example statement. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail275</link><guid isPermaLink="false">job/dev-language/226/changes#detail275</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
</description></item><item><title>#226 Handle context activity joins for substatement. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail276</link><guid isPermaLink="false">job/dev-language/226/changes#detail276</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
</description></item><item><title>#226 Standardize Xapi class names in datalayer-db (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail277</link><guid isPermaLink="false">job/dev-language/226/changes#detail277</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiGroupMemberActorJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntityPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityLangMapEntryPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntityTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityInteractionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementContextActivityJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoin.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDaoCommon.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/GroupMemberActorJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntryPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActorEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActorDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntityTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityExtensionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityObjectTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/ActivityInteractionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StateDeleteCommand.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StateDeleteCommandDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementContextActivityJoinTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/StatementEntityObjectTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/VerbEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiGroupMemberActorJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/VerbLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDeleteCommand.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityInteractionEntityPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/ActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDeleteCommandDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/StatementContextActivityJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/GroupMemberActorJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoin.kt
</description></item><item><title>#226 Implement Xapi Statement search by agent and related agents. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail278</link><guid isPermaLink="false">job/dev-language/226/changes#detail278</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt
</description></item><item><title>#226 Add support for since/until search in XapiStatementDataSourceDb (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail279</link><guid isPermaLink="false">job/dev-language/226/changes#detail279</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
</description></item><item><title>#226 Move statements read into a transaction. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail280</link><guid isPermaLink="false">job/dev-language/226/changes#detail280</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt
</description></item><item><title>#226 Fix compilation of http and repo modules (still just using the local package). (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail281</link><guid isPermaLink="false">job/dev-language/226/changes#detail281</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
</description></item><item><title>#226 Initial implementation of xapi statements search by activity uid. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail282</link><guid isPermaLink="false">job/dev-language/226/changes#detail282</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt
</description></item><item><title>#226 Include substatement, where present, in related activities search as per spec. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail283</link><guid isPermaLink="false">job/dev-language/226/changes#detail283</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
</description></item><item><title>#226 Add support for order and limit in XapiStatementDataSourceDb (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail284</link><guid isPermaLink="false">job/dev-language/226/changes#detail284</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
</description></item><item><title>#226 add student flow ui (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail285</link><guid isPermaLink="false">job/dev-language/226/changes#detail285</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 Add example statement for assignment completion (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail286</link><guid isPermaLink="false">job/dev-language/226/changes#detail286</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
README_XAPI.md
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
</description></item><item><title>#226 Remove static description (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail287</link><guid isPermaLink="false">job/dev-language/226/changes#detail287</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/Externallinkeditscreen.kt
</description></item><item><title>#226 Update README_XAPI.md (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail288</link><guid isPermaLink="false">job/dev-language/226/changes#detail288</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>README_XAPI.md
</description></item><item><title>#226 Fix contextactivities typo on README_XAPI.md (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail289</link><guid isPermaLink="false">job/dev-language/226/changes#detail289</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>README_XAPI.md
</description></item><item><title>#226 Fix contextactivities typo on README_XAPI.md (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail290</link><guid isPermaLink="false">job/dev-language/226/changes#detail290</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>README_XAPI.md
</description></item><item><title>#226 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. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail291</link><guid isPermaLink="false">job/dev-language/226/changes#detail291</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 description fix (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail292</link><guid isPermaLink="false">job/dev-language/226/changes#detail292</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
</description></item><item><title>#226 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. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail293</link><guid isPermaLink="false">job/dev-language/226/changes#detail293</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
</description></item><item><title>#226 Update XapiStatementDataSource to test statements retrieved using both id and exact format. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail294</link><guid isPermaLink="false">job/dev-language/226/changes#detail294</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt
</description></item><item><title>#226 Add support for id only format xapi statement results. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail295</link><guid isPermaLink="false">job/dev-language/226/changes#detail295</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntity.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiGroupMemberActorJoinDao.kt
</description></item><item><title>#226 Move xAPI model into its own module. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail296</link><guid isPermaLink="false">job/dev-language/226/changes#detail296</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiException.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAttachment.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContextActivities.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAgent.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivityDefinition.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt
respect-lib-xapi-model/.gitignore
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActor.kt
respect-lib-xapi-model/build.gradle.kts
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAttachment.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiResult.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt
respect-lib-xapi-model/README.md
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContext.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActivityExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt
respect-datalayer/build.gradle.kts
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiException.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiState.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiObjectType.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt
respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt
settings.gradle.kts
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiInteractionTypeEnum.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSourceLocal.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiState.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAccount.kt
</description></item><item><title>#226 Update implementation after refactoring statementdatasource to match the xAPI spec names. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail297</link><guid isPermaLink="false">job/dev-language/226/changes#detail297</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/XapiResponseHeaders.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/XapiRequestHeaders.kt
</description></item><item><title>#226 Minor compilation fixes. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail298</link><guid isPermaLink="false">job/dev-language/226/changes#detail298</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-datalayer-http/build.gradle.kts
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementResourceRoute.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt
</description></item><item><title>#226 Update README.md (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail299</link><guid isPermaLink="false">job/dev-language/226/changes#detail299</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>README.md
</description></item><item><title>#226 Refactor XapiStatementsResource to match spec as closely as possible (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail300</link><guid isPermaLink="false">job/dev-language/226/changes#detail300</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAttachment.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiInteractionTypeEnum.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAttachment.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContextActivities.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAgent.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiObjectType.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContext.kt
respect-lib-xapi-model/.gitignore
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResponseHeaders.kt
respect-lib-xapi-core/build.gradle.kts
respect-lib-xapi-model/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsParamsExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiResult.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAccount.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolUrlHttpDataSourceExt.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiResult.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContextActivities.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt
respect-lib-xapi-model/README.md
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-lib-xapi-core/.gitignore
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiState.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt
respect-server/build.gradle.kts
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContext.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-datalayer/build.gradle.kts
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiException.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiState.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAgent.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiRequestHeaders.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiObjectType.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesBuilderExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt
respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/XapiResponseHeaders.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementsResourceLocal.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt
settings.gradle.kts
respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementResourceRoute.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiInteractionTypeEnum.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/XapiRequestHeaders.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt
respect-lib-xapi-core/README.md
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiException.kt
respect-lib-xapi-model/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAccount.kt
</description></item><item><title>#226 fix metadata extraction (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail301</link><guid isPermaLink="false">job/dev-language/226/changes#detail301</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt
</description></item><item><title>#226 fix metadata extraction remove manual string amnipulation (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail302</link><guid isPermaLink="false">job/dev-language/226/changes#detail302</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt
</description></item><item><title>#226 documented the callbacks (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail303</link><guid isPermaLink="false">job/dev-language/226/changes#detail303</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt
</description></item><item><title>#226 fix (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail304</link><guid isPermaLink="false">job/dev-language/226/changes#detail304</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt
</description></item><item><title>#226 Add initial draft of assignment xAPI recipe. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail305</link><guid isPermaLink="false">job/dev-language/226/changes#detail305</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md
</description></item><item><title>#226 Update initial draft of assignment recipe. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail306</link><guid isPermaLink="false">job/dev-language/226/changes#detail306</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md
</description></item><item><title>#226 Update initial draft of assignment recipe. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail307</link><guid isPermaLink="false">job/dev-language/226/changes#detail307</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md
</description></item><item><title>#226 Update initial draft of assignment recipe. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail308</link><guid isPermaLink="false">job/dev-language/226/changes#detail308</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md
</description></item><item><title>#226 update assignment deatil screen with dummy statement data (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail309</link><guid isPermaLink="false">job/dev-language/226/changes#detail309</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDbTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementDataSource.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentProgressEntityRow.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentResult.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementDataSourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
</description></item><item><title>#226 update assignment deatil screen with dummy statement data (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail310</link><guid isPermaLink="false">job/dev-language/226/changes#detail310</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentProgressEntityRow.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentResult.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
</description></item><item><title>#226 rename (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail311</link><guid isPermaLink="false">job/dev-language/226/changes#detail311</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/ExternalLinkEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/Externallinkeditviewmodel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/Externallinkeditscreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/ExternalLinkEditScreen.kt
</description></item><item><title>#226 Initial installatoin instructions for RESPECT server binary installation (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail312</link><guid isPermaLink="false">job/dev-language/226/changes#detail312</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>INSTALL.md
</description></item><item><title>#226 Add respect-server.service and update INSTALL.md (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail313</link><guid isPermaLink="false">job/dev-language/226/changes#detail313</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/dist/systemd/respect-server.service
INSTALL.md
</description></item><item><title>#226 Make example IP address consistent on INSTALL.md (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail314</link><guid isPermaLink="false">job/dev-language/226/changes#detail314</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>INSTALL.md
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail315</link><guid isPermaLink="false">job/dev-language/226/changes#detail315</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentStatusFilter.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail316</link><guid isPermaLink="false">job/dev-language/226/changes#detail316</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiDummyDataGenerator.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item><item><title>#226 Add work in progress permission recipe. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail317</link><guid isPermaLink="false">job/dev-language/226/changes#detail317</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_PERMISSION_RECIPE.md
</description></item><item><title>#226 Work in progress statement resource integration test. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail318</link><guid isPermaLink="false">job/dev-language/226/changes#detail318</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementsResourceLocal.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-repository/build.gradle.kts
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt
</description></item><item><title>#226 Update statement resource test to use flow instead of delay. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail319</link><guid isPermaLink="false">job/dev-language/226/changes#detail319</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
</description></item><item><title>#226 Update Statement resource integration test to include get. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail320</link><guid isPermaLink="false">job/dev-language/226/changes#detail320</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiTimes.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt
</description></item><item><title>#226 Update recipe for class groups. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail321</link><guid isPermaLink="false">job/dev-language/226/changes#detail321</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiAgentsResource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
respect-lib-xapi-core/README_CLASSGROUPS_RECIPE.md
</description></item><item><title>#226 Update XapiActorDataSourceDb to fix compilation issue. Create new independent dataloadstate module. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail322</link><guid isPermaLink="false">job/dev-language/226/changes#detail322</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/build.gradle.kts
respect-lib-dataloadstate/.gitignore
respect-lib-dataloadstate/build.gradle.kts
respect-lib-xapi-core/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt
settings.gradle.kts
</description></item><item><title>#226 Update XapiActorDataSourceDb to fix compilation issue. Create new independent dataloadstate module. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail323</link><guid isPermaLink="false">job/dev-language/226/changes#detail323</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolConfigSettingDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrBadgeDataSourceDb.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/GetListCommonParams.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/ExtendedDataSourceValidationHelper.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AssignmentRoute.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasskeyDataSourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSource.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSource.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/AssignmentDataSourceHttp.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolPermissionGrantDataSourceDb.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttp.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerHeaders.kt
respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ClassDataSourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadMetaInfo.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt
respect-server/src/main/kotlin/world/respect/server/routes/qrcode/PersonQrBadgeRoute.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt
respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/passkeylist/PasskeyListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadParams.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpHeadersExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSource.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerParams.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolAppRoute.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadMetaInfo.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadParams.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerParams.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLayerHeaders.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/permissions/CheckSchoolPermissionsUseCase.kt
respect-server/src/main/kotlin/world/respect/server/util/ext/ParametersExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/LocalModelDataSourceExt.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasskeyDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSource.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt
respect-lib-dataloadstate/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttp.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadState.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/DataLoadState.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/ExtendedDataSourceValidationHelperImpl.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/edit/CurriculumMappingEditScreen.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasskeyDataSourceRepository.kt
respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ReportDataSourceRepository.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSource.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolPermissionGrantRoute.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasswordDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectUserDataSource.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolAppDataSourceDb.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ReportDataSourceDb.kt
</description></item><item><title>#226 Remove obsolete GetStatementsRequest (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail324</link><guid isPermaLink="false">job/dev-language/226/changes#detail324</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
</description></item><item><title>#226 Add support for flow based return on XapiStatementResource (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail325</link><guid isPermaLink="false">job/dev-language/226/changes#detail325</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
</description></item><item><title>#226 resolve conflict (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail326</link><guid isPermaLink="false">job/dev-language/226/changes#detail326</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 Add query intent filter (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail327</link><guid isPermaLink="false">job/dev-language/226/changes#detail327</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-app-compose/src/androidMain/AndroidManifest.xml
</description></item><item><title>#226 Work in progress adding embedded Nanohttpd based xapi server. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail328</link><guid isPermaLink="false">job/dev-language/226/changes#detail328</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt
gradle/libs.versions.toml
respect-lib-xapi-nanohttpd/.gitignore
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/AssignmentDataSourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ClassDataSourceRepository.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt
respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiResourceProvider.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DataLoadStateExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/permissions/CheckSchoolPermissionsUseCase.kt
respect-lib-xapi-nanohttpd/build.gradle.kts
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/LocalModelDataSourceExt.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt
respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithCredentialDbImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttp.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/passkeyList/PasskeyListScreen.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasskeyDataSourceRepository.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/edit/CurriculumMappingEditScreen.kt
respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseDb.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt
respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CheckPasskeySupportUseCaseAndroidImpl.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt
settings.gradle.kts
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt
</description></item><item><title>#226 update getAssignmentResult on repository (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail329</link><guid isPermaLink="false">job/dev-language/226/changes#detail329</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail330</link><guid isPermaLink="false">job/dev-language/226/changes#detail330</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
</description></item><item><title>#226 Work in progress: setup learning unit detail viewmodel to get xapi launch url using embedded xapi server. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail331</link><guid isPermaLink="false">job/dev-language/226/changes#detail331</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdResourceProvider.kt
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiResourceProvider.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt
respect-lib-shared/build.gradle.kts
</description></item><item><title>#226 Work in progress: setup learning unit detail viewmodel to get xapi launch url using embedded xapi server. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail332</link><guid isPermaLink="false">job/dev-language/226/changes#detail332</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/XAPI.js
</description></item><item><title>#226 Add Maestro flow summary documentation for core features. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail333</link><guid isPermaLink="false">job/dev-language/226/changes#detail333</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-test-end-to-end/README.md
.maestro/flow-summary/001_002_add_user_direct_test.md
respect-test-end-to-end/test-description/001_003_login_using_school_link_test_description.md
respect-test-end-to-end/test-description/002_browse_lessons_test_description.md
.maestro/flow-summary/001_005_add_school_self_registration_test.md
.maestro/flow-summary/002_browse_lessons_test.md
.maestro/README.md
respect-test-end-to-end/test-description/001_001_invite_using_invite_code_test_description.md
respect-test-end-to-end/test-description/001_002_add_user_direct_test_description.md
.maestro/flow-summary/001_001_invite_users_using_qr_code_or_link_test.md
respect-test-end-to-end/test-description/001_005_add_school_self_registration_test_description.md
.maestro/flow-summary/001_003_login_using_school_link_test.md
respect-test-end-to-end/test-description/003_teacher_user_assigns_assignment_to_a_class_test_description.md
respect-test-end-to-end/test-description/006_user_signup_using_passkey_test_description.md
.maestro/flow-summary/003_admin_user_assigns_assignment_to_a_class_test.md
</description></item><item><title>#226 Update `.maestro/README.md` formatting. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail334</link><guid isPermaLink="false">job/dev-language/226/changes#detail334</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/README.md
</description></item><item><title>#226 Refactor Maestro test documentation by consolidating flow summaries. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail335</link><guid isPermaLink="false">job/dev-language/226/changes#detail335</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/README.md
.maestro/flow-summary/001_002_add_user_direct_test.md
.maestro/flow-summary/001_001_invite_users_using_qr_code_or_link_test.md
.maestro/flow-summary/001_003_login_using_school_link_test.md
.maestro/flow-summary/001_005_add_school_self_registration_test.md
.maestro/flow-summary/002_browse_lessons_test.md
.maestro/flow-summary/003_admin_user_assigns_assignment_to_a_class_test.md
</description></item><item><title>#226 Update Maestro README.md to use numbered lists for test flow descriptions. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail336</link><guid isPermaLink="false">job/dev-language/226/changes#detail336</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/README.md
</description></item><item><title>#226 Update Maestro README with detailed steps for user management and school registration test flows. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail337</link><guid isPermaLink="false">job/dev-language/226/changes#detail337</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/README.md
</description></item><item><title>#226 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. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail338</link><guid isPermaLink="false">job/dev-language/226/changes#detail338</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonRoleEnumExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCaseImpl.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt
</description></item><item><title>#226 Fix for issue #231. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail339</link><guid isPermaLink="false">job/dev-language/226/changes#detail339</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClassPendingPersonListItem.kt
</description></item><item><title>#226 Fix mistake on xapi statement query: using incorrect verb field (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail340</link><guid isPermaLink="false">job/dev-language/226/changes#detail340</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
</description></item><item><title>#226 Fix mistake on xapi resource: wrong parameter for until. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail341</link><guid isPermaLink="false">job/dev-language/226/changes#detail341</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
</description></item><item><title>#226 Issue #231 (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail342</link><guid isPermaLink="false">job/dev-language/226/changes#detail342</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/PersonExt.kt
</description></item><item><title>#226 add Assignment xAPI Recipe in edi, list, deatil screen (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail343</link><guid isPermaLink="false">job/dev-language/226/changes#detail343</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentMapper.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 Disable flow 003 until new xAPI based assignment branch is merged. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail344</link><guid isPermaLink="false">job/dev-language/226/changes#detail344</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows-disabled/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 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). (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail345</link><guid isPermaLink="false">job/dev-language/226/changes#detail345</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_PERMISSION_RECIPE.md
</description></item><item><title>#226 Add note on canonical updates to permission recipe. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail346</link><guid isPermaLink="false">job/dev-language/226/changes#detail346</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_PERMISSION_RECIPE.md
</description></item><item><title>#226 Check username unique during invitation acceptance process (issue #232). (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail347</link><guid isPermaLink="false">job/dev-language/226/changes#detail347</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt
respect-server/src/main/kotlin/world/respect/server/account/invite/username/UsernameSuggestionUseCaseServer.kt
respect-server/src/main/kotlin/world/respect/server/account/invite/username/checkusernameunique/CheckUsernameUniqueUseCaseServer.kt
respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCase.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-server/src/main/kotlin/world/respect/server/routes/username/checkusernameunique/CheckUsernameUniqueRoute.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCaseClient.kt
</description></item><item><title>#226 Apply username unique check to when admin sets a username manually. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail348</link><guid isPermaLink="false">job/dev-language/226/changes#detail348</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt
</description></item><item><title>#226 Correct visibility of floating action button on PersonListViewModel.kt and update to use common GetWritableRolesUseCase (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail349</link><guid isPermaLink="false">job/dev-language/226/changes#detail349</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail350</link><guid isPermaLink="false">job/dev-language/226/changes#detail350</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 Show role on PersonListScreen. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail351</link><guid isPermaLink="false">job/dev-language/226/changes#detail351</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt
</description></item><item><title>#226 Show error snackbar when no valid link is found. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail352</link><guid isPermaLink="false">job/dev-language/226/changes#detail352</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
</description></item><item><title>#226 Bump version and change assignment label. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail353</link><guid isPermaLink="false">job/dev-language/226/changes#detail353</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateTimeField.kt
respect-app-compose/build.gradle.kts
</description></item><item><title>#226 Merge dev-xapi changes. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail354</link><guid isPermaLink="false">job/dev-language/226/changes#detail354</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt
</description></item><item><title>#226 Update Maestro flows for assignment management and class member creation. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail355</link><guid isPermaLink="false">job/dev-language/226/changes#detail355</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/subflows/create_account_for_class_member.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/subflows/school_user_login_flow.yaml
</description></item><item><title>#226 remove Assignmententity and related classes (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail356</link><guid isPermaLink="false">job/dev-language/226/changes#detail356</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/AssignmentDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSourceLocal.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/AssignmentDataSource.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AssignmentRoute.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentEntityDao.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/AssignmentDatasourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
</description></item><item><title>#226 Move `003_admin_user_assigns_assignment_to_a_class_test.yaml` to `pending-flows` and add an xAPI verification script. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail357</link><guid isPermaLink="false">job/dev-language/226/changes#detail357</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Update terms/conditions to use .well-known path on school directory server. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail358</link><guid isPermaLink="false">job/dev-language/226/changes#detail358</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectConstants.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/termsandcondition/TermsAndConditionScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/termsandcondition/TermsAndConditionViewModel.kt
respect-app-compose/build.gradle.kts
</description></item><item><title>#226 Add guideline on AI-generated content submission (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail359</link><guid isPermaLink="false">job/dev-language/226/changes#detail359</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>CODE_OF_CONDUCT.md
</description></item><item><title>#226 Clarify guidelines on submitting AI-generated content (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail360</link><guid isPermaLink="false">job/dev-language/226/changes#detail360</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>CODE_OF_CONDUCT.md
</description></item><item><title>#226 Update Maestro assignment flow. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail361</link><guid isPermaLink="false">job/dev-language/226/changes#detail361</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows-disabled/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail362</link><guid isPermaLink="false">job/dev-language/226/changes#detail362</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
</description></item><item><title>#226 Initial xAPI embedded server implementation. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail363</link><guid isPermaLink="false">job/dev-language/226/changes#detail363</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementsResourceExt.kt
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt
</description></item><item><title>#226 Fix ktor path for xapi statements resource. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail364</link><guid isPermaLink="false">job/dev-language/226/changes#detail364</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/Application.kt
</description></item><item><title>#226 Initial statement maker. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail365</link><guid isPermaLink="false">job/dev-language/226/changes#detail365</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/statementmaker.json
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/index.html
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/xapi_module.js
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/XAPI.js
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail366</link><guid isPermaLink="false">job/dev-language/226/changes#detail366</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentFilter.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/time/LocalDateExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentListScreenFilter.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail367</link><guid isPermaLink="false">job/dev-language/226/changes#detail367</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiResult.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAgent.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentMapper.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContextActivities.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiContext.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActor.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiObjectType.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAttachment.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementObject.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiGroup.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiException.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiInteractionTypeEnum.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatement.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiVerb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiAccount.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiState.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiActivityDefinition.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementRef.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail368</link><guid isPermaLink="false">job/dev-language/226/changes#detail368</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail369</link><guid isPermaLink="false">job/dev-language/226/changes#detail369</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
</description></item><item><title>#226 Update statement maker to use a statement json from text area and actor from params. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail370</link><guid isPermaLink="false">job/dev-language/226/changes#detail370</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.json
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/statementmaker.json
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/index.html
</description></item><item><title>#226 Update example app structure and naming. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail371</link><guid isPermaLink="false">job/dev-language/226/changes#detail371</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/script.js
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.json
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/audio.ogg
respect-server/src/main/resources/http/respect-ds/case_valid/appmanifest.json
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/lesson001.html
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/video.mp4
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/statementmaker.json
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/index.html
respect-server/src/main/resources/http/respect-ds/case_valid/examples/icon.png
respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_module.js
respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/statementmaker/xapi_module.js
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.html
respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/icon.png
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json
respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/script.js
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/cover.png
respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/statementmaker.json
respect-server/src/main/resources/http/respect-ds/case_valid/icon.png
respect-server/src/main/resources/http/respect-ds/case_valid/examples/index.json
respect-server/src/main/resources/http/respect-ds/case_valid/index.json
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson001/audio.ogg
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/video.mp4
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/cover.png
</description></item><item><title>#226 Add jstetris example. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail372</link><guid isPermaLink="false">job/dev-language/226/changes#detail372</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-space.gif
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-right.gif
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/base64.js
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/NOTICE
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.js
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/LICENSE
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/launch.html
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jquery-1.6.4.min.js
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/2.5.3-crypto-sha1.js
respect-datalayer-repository/log/respect-server.2026-05-04.0.log
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-up.gif
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/README.md
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.ico
respect-datalayer-repository/log/respect-server.2026-05-12.0.log
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/icon.png
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jstetris.json
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.css
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-left.gif
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.js
respect-server/src/main/resources/http/respect-ds/case_valid/examples/index.json
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-down.gif
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.html
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.css
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tincan.xml
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/readme.txt
</description></item><item><title>#226 Update LaunchAppUseCaseAndroid to handle launching native app if app with a verified app link is available. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail373</link><guid isPermaLink="false">job/dev-language/226/changes#detail373</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json
respect-app-compose/src/androidMain/AndroidManifest.xml
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
</description></item><item><title>#226 Work in progress: add header xapi header fields (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail374</link><guid isPermaLink="false">job/dev-language/226/changes#detail374</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadParams.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadMetaInfo.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
</description></item><item><title>#226 Bump version for xAPI preview (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail375</link><guid isPermaLink="false">job/dev-language/226/changes#detail375</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/build.gradle.kts
</description></item><item><title>#226 change assignment detail and edit screens to use XapiStatement instead of Assignment model (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail376</link><guid isPermaLink="false">job/dev-language/226/changes#detail376</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiDummyDataGenerator.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
</description></item><item><title>#226 Rename and document LaunchRequest properties. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail377</link><guid isPermaLink="false">job/dev-language/226/changes#detail377</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt
</description></item><item><title>#226 Pass assignment activity id through learning unit detail to launch app use case. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail378</link><guid isPermaLink="false">job/dev-language/226/changes#detail378</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
</description></item><item><title>#226 resolve conflict (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail379</link><guid isPermaLink="false">job/dev-language/226/changes#detail379</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 Update GetXapiLaunchUrlUseCase to include assignment activity id in the path. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail380</link><guid isPermaLink="false">job/dev-language/226/changes#detail380</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt
respect-lib-util/build.gradle.kts
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt
respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt
</description></item><item><title>#226 Implement initial support for statement voiding. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail381</link><guid isPermaLink="false">job/dev-language/226/changes#detail381</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiForbiddenException.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiBadRequestException.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt
</description></item><item><title>#226 Implement comments in AssignmentEdit (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail382</link><guid isPermaLink="false">job/dev-language/226/changes#detail382</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail383</link><guid isPermaLink="false">job/dev-language/226/changes#detail383</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
</description></item><item><title>#226 improve list screen (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail384</link><guid isPermaLink="false">job/dev-language/226/changes#detail384</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentMapper.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAssignmentConstants.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentSummaryEntityRow.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail385</link><guid isPermaLink="false">job/dev-language/226/changes#detail385</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail386</link><guid isPermaLink="false">job/dev-language/226/changes#detail386</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiDummyDataGenerator.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item><item><title>#226 Add guideline on understanding code before committing (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail387</link><guid isPermaLink="false">job/dev-language/226/changes#detail387</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>CODING_GUIDELINES.md
</description></item><item><title>#226 Clarify variable usage in coding guidelines (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail388</link><guid isPermaLink="false">job/dev-language/226/changes#detail388</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>CODING_GUIDELINES.md
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail389</link><guid isPermaLink="false">job/dev-language/226/changes#detail389</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
</description></item><item><title>#226 Update AGENTS.md to refer to CODING_GUIDELINES.md (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail390</link><guid isPermaLink="false">job/dev-language/226/changes#detail390</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>AGENTS.md
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail391</link><guid isPermaLink="false">job/dev-language/226/changes#detail391</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
</description></item><item><title>#226 Update Maestro E2E test flows for assignment management and app browsing. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail392</link><guid isPermaLink="false">job/dev-language/226/changes#detail392</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/pending-flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/subflows/admin_add_app.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail393</link><guid isPermaLink="false">job/dev-language/226/changes#detail393</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail394</link><guid isPermaLink="false">job/dev-language/226/changes#detail394</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
</description></item><item><title>#226 clean up AssignmentDetail,Edit screens and viewmodels (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail395</link><guid isPermaLink="false">job/dev-language/226/changes#detail395</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/AssignmentResultExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
</description></item><item><title>#226 Remove role selection from admin add teacher subflow. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail396</link><guid isPermaLink="false">job/dev-language/226/changes#detail396</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml
</description></item><item><title>#226 fix (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail397</link><guid isPermaLink="false">job/dev-language/226/changes#detail397</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 fix (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail398</link><guid isPermaLink="false">job/dev-language/226/changes#detail398</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 remove getAssignmentSummaries function (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail399</link><guid isPermaLink="false">job/dev-language/226/changes#detail399</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAssignmentConstants.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentSummaryEntityRow.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
</description></item><item><title>#226 Implement initial version of getAssignmentProgress (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail400</link><guid isPermaLink="false">job/dev-language/226/changes#detail400</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentProgress.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiActorAndAssignmentProgress.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiConstants.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail401</link><guid isPermaLink="false">job/dev-language/226/changes#detail401</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
</description></item><item><title>#226 Add xapiAgent property to RespectSessionAndPerson (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail402</link><guid isPermaLink="false">job/dev-language/226/changes#detail402</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt
</description></item><item><title>#226 resolve conflicts (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail403</link><guid isPermaLink="false">job/dev-language/226/changes#detail403</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
</description></item><item><title>#226 Add Uuid opt-in to respect-app-compose and respect-lib-shared. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail404</link><guid isPermaLink="false">job/dev-language/226/changes#detail404</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/build.gradle.kts
respect-app-compose/build.gradle.kts
</description></item><item><title>#226 Add studentsXapiGroup function (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail405</link><guid isPermaLink="false">job/dev-language/226/changes#detail405</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt
</description></item><item><title>#226 Update Maestro flows for assignment and class management to use dynamic class names. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail406</link><guid isPermaLink="false">job/dev-language/226/changes#detail406</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/admin_add_class_with_members.yaml
.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml
.maestro/flows/subflows/admin_add_new_student_to_class.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Update Maestro flows to reduce the number of students in the assignment test class. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail407</link><guid isPermaLink="false">job/dev-language/226/changes#detail407</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/subflows/admin_add_class_with_members.yaml
</description></item><item><title>#226 Add xapiAgent property to RespectSessionAndPerson (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail408</link><guid isPermaLink="false">job/dev-language/226/changes#detail408</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt
</description></item><item><title>#226 Add Uuid opt-in to respect-app-compose and respect-lib-shared. (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail409</link><guid isPermaLink="false">job/dev-language/226/changes#detail409</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/build.gradle.kts
respect-app-compose/build.gradle.kts
</description></item><item><title>#226 Add studentsXapiGroup function (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail410</link><guid isPermaLink="false">job/dev-language/226/changes#detail410</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail411</link><guid isPermaLink="false">job/dev-language/226/changes#detail411</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
</description></item><item><title>#226 fix ui (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail412</link><guid isPermaLink="false">job/dev-language/226/changes#detail412</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
</description></item><item><title>#226 Fix XapiStatementEntityDao (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail413</link><guid isPermaLink="false">job/dev-language/226/changes#detail413</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
</description></item><item><title>#226 Fix XapiStatementEntityDao (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail414</link><guid isPermaLink="false">job/dev-language/226/changes#detail414</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt
</description></item><item><title>#226 Fix XapiActorExt.distinctMerged function (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail415</link><guid isPermaLink="false">job/dev-language/226/changes#detail415</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt
</description></item><item><title>#226 Update Maestro test flows for assignments and move onboarding tests to pending. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail416</link><guid isPermaLink="false">job/dev-language/226/changes#detail416</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/pending-flows/001_002_add_user_direct_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/001_005_add_school_self_registration_test.yaml
.maestro/pending-flows/001_003_login_using_school_link_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/pending-flows/001_005_add_school_self_registration_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/pending-flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/pending-flows/002_browse_lessons_test.yaml
</description></item><item><title>#226 Fix mistake on XapiStatementEntityDao get assignment progress function: incorrect use of group. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail417</link><guid isPermaLink="false">job/dev-language/226/changes#detail417</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
</description></item><item><title>#226 Make assignment progress query test more rigorous. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail418</link><guid isPermaLink="false">job/dev-language/226/changes#detail418</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
</description></item><item><title>#226 Implement creation of an XapiGroup for students in a given class to enable assignments to work as expected. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail419</link><guid isPermaLink="false">job/dev-language/226/changes#detail419</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt
respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail420</link><guid isPermaLink="false">job/dev-language/226/changes#detail420</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt
</description></item><item><title>#226 Remove the app url argument from Learning Unit Detail screen. This should not be required. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail421</link><guid isPermaLink="false">job/dev-language/226/changes#detail421</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentLearningUnitRef.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt
</description></item><item><title>#226 Add publication extension readme. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail422</link><guid isPermaLink="false">job/dev-language/226/changes#detail422</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_EXTENSION_PUBLICATION.md
</description></item><item><title>#226 fix assignment detail viewmodel (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail423</link><guid isPermaLink="false">job/dev-language/226/changes#detail423</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AssignmentAdapter.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail424</link><guid isPermaLink="false">job/dev-language/226/changes#detail424</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
</description></item><item><title>#226 remove  hardcoded English string literals (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail425</link><guid isPermaLink="false">job/dev-language/226/changes#detail425</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentStatusFilter.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail426</link><guid isPermaLink="false">job/dev-language/226/changes#detail426</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
</description></item><item><title>#226 Add GetXapiActivityForPublicationUseCase and related readme. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail427</link><guid isPermaLink="false">job/dev-language/226/changes#detail427</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_EXTENSION_PUBLICATION.md
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMapExt.kt
</description></item><item><title>#226 Update assignment recipe example. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail428</link><guid isPermaLink="false">job/dev-language/226/changes#detail428</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md
</description></item><item><title>#226 Update Maestro assignment flow to uncomment and refine UI assertions. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail429</link><guid isPermaLink="false">job/dev-language/226/changes#detail429</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Update LaunchAppUseCase to set activity id argument as per GetXapiActivityForPublicationUseCase to ensure this is set consistently. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail430</link><guid isPermaLink="false">job/dev-language/226/changes#detail430</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt
respect-lib-xapi-core/README.md
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item><item><title>#226 Change the return type of getAssignmentProgress so that the datasource can take care of loading the assignment statement. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail431</link><guid isPermaLink="false">job/dev-language/226/changes#detail431</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/AssignmentAndProgress.kt
</description></item><item><title>#226 Chagne GetStatementParams.agent parameter type to XapiActor because the spec allows for this to be an identified group. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail432</link><guid isPermaLink="false">job/dev-language/226/changes#detail432</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
</description></item><item><title>#226 Refactor assignment detail screen and edit screen (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail433</link><guid isPermaLink="false">job/dev-language/226/changes#detail433</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
</description></item><item><title>#226 Refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail434</link><guid isPermaLink="false">job/dev-language/226/changes#detail434</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 Refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail435</link><guid isPermaLink="false">job/dev-language/226/changes#detail435</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
</description></item><item><title>#226 Refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail436</link><guid isPermaLink="false">job/dev-language/226/changes#detail436</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 Refactor AssignmentDetailViewModel. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail437</link><guid isPermaLink="false">job/dev-language/226/changes#detail437</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
</description></item><item><title>#226 Fixes for AssignmentEditViewModel.kt (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail438</link><guid isPermaLink="false">job/dev-language/226/changes#detail438</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
</description></item><item><title>#226 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. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail439</link><guid isPermaLink="false">job/dev-language/226/changes#detail439</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt
</description></item><item><title>#226 Refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail440</link><guid isPermaLink="false">job/dev-language/226/changes#detail440</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt
</description></item><item><title>#226 Refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail441</link><guid isPermaLink="false">job/dev-language/226/changes#detail441</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
</description></item><item><title>#226 Fix for XapiActorSerializer: had incorrect use of jsonPrimitive.content (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail442</link><guid isPermaLink="false">job/dev-language/226/changes#detail442</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt
</description></item><item><title>#226 Refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail443</link><guid isPermaLink="false">job/dev-language/226/changes#detail443</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
</description></item><item><title>#226 Rework handling of xAPI parameters in http statements datasource (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail444</link><guid isPermaLink="false">job/dev-language/226/changes#detail444</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsParamsExt.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt
</description></item><item><title>#226 Add missing verb parameter to XapiStatementsResourceHttp (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail445</link><guid isPermaLink="false">job/dev-language/226/changes#detail445</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
</description></item><item><title>#226 Add missing since/until to fromParams in XapiStatementsResource (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail446</link><guid isPermaLink="false">job/dev-language/226/changes#detail446</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
</description></item><item><title>#226 Clean up (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail447</link><guid isPermaLink="false">job/dev-language/226/changes#detail447</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/externallink/ExternalLinkEditScreen.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/ExternalLinkEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/OpenExternalLinkUseCaseAndroid.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/externallink/ExternalLinkEditViewModel.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/ExternalLinkEditScreen.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt
</description></item><item><title>#226 Clean up (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail448</link><guid isPermaLink="false">job/dev-language/226/changes#detail448</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt
</description></item><item><title>#226 Change Person.asAgent to use only guid to avoid the actor id changing when username is first set. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail449</link><guid isPermaLink="false">job/dev-language/226/changes#detail449</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt
</description></item><item><title>#226 Update Maestro E2E test flows and move several tests from pending to active. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail450</link><guid isPermaLink="false">job/dev-language/226/changes#detail450</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/pending-flows/001_002_add_user_direct_test.yaml
.maestro/flows/001_005_add_school_self_registration_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/pending-flows/001_003_login_using_school_link_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/pending-flows/001_005_add_school_self_registration_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/pending-flows/002_browse_lessons_test.yaml
.maestro/pending-flows/001_001_invite_users_using_qr_code_or_link_test.yaml
</description></item><item><title>#226 moved tests to pendifolder to focus on 003 (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail451</link><guid isPermaLink="false">job/dev-language/226/changes#detail451</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/pending-flows/001_002_add_user_direct_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/001_005_add_school_self_registration_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/pending-flows/001_003_login_using_school_link_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/pending-flows/001_005_add_school_self_registration_test.yaml
.maestro/pending-flows/002_browse_lessons_test.yaml
.maestro/pending-flows/001_001_invite_users_using_qr_code_or_link_test.yaml
</description></item><item><title>#226 Cleanup of AssignmentDetailScreen Jetpack compose UI (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail452</link><guid isPermaLink="false">job/dev-language/226/changes#detail452</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt
respect-server/well-known/terms.html
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailHeaderCell.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentNameCell.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html
</description></item><item><title>#226 Correct name on XapiAssignmentProgress and ResultRow from rawScore to scoreScaled. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail453</link><guid isPermaLink="false">job/dev-language/226/changes#detail453</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentProgress.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt
</description></item><item><title>#226 Cleanup of AssignmentDetailScreen work in progress. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail454</link><guid isPermaLink="false">job/dev-language/226/changes#detail454</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiContextExt.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentProgress.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt
</description></item><item><title>#226 Cleanup of AssignmentDetailScreen work in progress. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail455</link><guid isPermaLink="false">job/dev-language/226/changes#detail455</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMap.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentNameCell.kt
</description></item><item><title>#226 Cleanup AssignmentDetailScreen when viewed as student. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail456</link><guid isPermaLink="false">job/dev-language/226/changes#detail456</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentProgress.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentTaskProgress.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiActorAndAssignmentProgress.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMapExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt
</description></item><item><title>#226 AssignmentEdit UI tidyup in progress. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail457</link><guid isPermaLink="false">job/dev-language/226/changes#detail457</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditTaskListItem.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMap.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentLearningUnitRef.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Assignment.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/langMapString.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt
</description></item><item><title>#226 AssignmentEdit tidyup: use ListItme not our own mix of columns/rows. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail458</link><guid isPermaLink="false">job/dev-language/226/changes#detail458</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditTaskListItem.kt
</description></item><item><title>#226 Fix mistake in XapiStatementsResourceDb that would set the wrong activity id on an empty result. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail459</link><guid isPermaLink="false">job/dev-language/226/changes#detail459</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
</description></item><item><title>#226 Merge fix to set xapi activity id correctly for empty assignment result. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail460</link><guid isPermaLink="false">job/dev-language/226/changes#detail460</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
</description></item><item><title>#226 Temporary test relaxation. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail461</link><guid isPermaLink="false">job/dev-language/226/changes#detail461</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 refactor (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail462</link><guid isPermaLink="false">job/dev-language/226/changes#detail462</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
</description></item><item><title>#226 Update XapiStatementResourceDb to check if statement object is missing a required objectType value and throw exception if needed. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail463</link><guid isPermaLink="false">job/dev-language/226/changes#detail463</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt
respect-lib-xapi-core/build.gradle.kts
</description></item><item><title>#226 Update getAssignmentProgress to handle order of activities and avoid potential to lose web pub manifest url if activity were to be updated. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail464</link><guid isPermaLink="false">job/dev-language/226/changes#detail464</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
</description></item><item><title>#226 Temporary test relaxations on filter chips and list screen. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail465</link><guid isPermaLink="false">job/dev-language/226/changes#detail465</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Add improved assignment demo result learning unit. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail466</link><guid isPermaLink="false">job/dev-language/226/changes#detail466</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md
respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/unit.json
respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/icon.png
respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js
respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/index.html
respect-server/src/main/resources/http/respect-ds/case_valid/examples/index.json
</description></item><item><title>#226 Update Maestro E2E test flows for assignment management and class member creation. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail467</link><guid isPermaLink="false">job/dev-language/226/changes#detail467</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/subflows/admin_add_class_with_members.yaml
.maestro/flows/subflows/create_account_for_class_member.yaml
</description></item><item><title>#226 Remove redundant assertions and taps from the admin assignment flow. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail468</link><guid isPermaLink="false">job/dev-language/226/changes#detail468</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Add fields to assignable unit completion. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail469</link><guid isPermaLink="false">job/dev-language/226/changes#detail469</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js
</description></item><item><title>#226 Fix AssignmentEditViewModel bug: timestamp was not being updated when saving, which led to undefined results when editing/updating. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail470</link><guid isPermaLink="false">job/dev-language/226/changes#detail470</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
</description></item><item><title>#226 Clean up `003_admin_user_assigns_assignment_to_a_class_test.yaml` Maestro flow. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail471</link><guid isPermaLink="false">job/dev-language/226/changes#detail471</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Update Maestro test flow for assignment management. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail472</link><guid isPermaLink="false">job/dev-language/226/changes#detail472</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/subflows/admin_add_class_with_members.yaml
</description></item><item><title>#226 Fix total counts in filter chips on Assignment Detail in student mode. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail473</link><guid isPermaLink="false">job/dev-language/226/changes#detail473</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
</description></item><item><title>#226 Refactor screen (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail474</link><guid isPermaLink="false">job/dev-language/226/changes#detail474</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/externallink/ExternalLinkEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/share/PlaylistShareScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt
</description></item><item><title>#226 Fix filtering of assignment result rows for a particular student. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail475</link><guid isPermaLink="false">job/dev-language/226/changes#detail475</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
</description></item><item><title>#226 Update Maestro assignment flow test data and assertions. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail476</link><guid isPermaLink="false">job/dev-language/226/changes#detail476</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Update Maestro flow for admin assignment to improve navigation and verification. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail477</link><guid isPermaLink="false">job/dev-language/226/changes#detail477</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Update statement maker demos to show text after statement submitted successfully. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail478</link><guid isPermaLink="false">job/dev-language/226/changes#detail478</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js
respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html
respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js
</description></item><item><title>#226 Add assertions for statement delivery confirmation in Maestro assignment flow. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail479</link><guid isPermaLink="false">job/dev-language/226/changes#detail479</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Update WebViewActivity to allow http/https mixed content for localhost. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail480</link><guid isPermaLink="false">job/dev-language/226/changes#detail480</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js
respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js
</description></item><item><title>#226 Fix NanoHttpd handling of CORS headers. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail481</link><guid isPermaLink="false">job/dev-language/226/changes#detail481</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt
</description></item><item><title>#226 Move Maestro E2E test flows from pending to active status. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail482</link><guid isPermaLink="false">job/dev-language/226/changes#detail482</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/pending-flows/001_002_add_user_direct_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/001_005_add_school_self_registration_test.yaml
.maestro/pending-flows/001_003_login_using_school_link_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/pending-flows/001_005_add_school_self_registration_test.yaml
.maestro/pending-flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/pending-flows/002_browse_lessons_test.yaml
</description></item><item><title>#226 Work in progress fixes for AssignmentList screen. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail483</link><guid isPermaLink="false">job/dev-language/226/changes#detail483</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSummaryResultRow.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntryPropEnum.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt
</description></item><item><title>#226 Look for both resultContext.completion and completed verb to check for assignment completion. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail484</link><guid isPermaLink="false">job/dev-language/226/changes#detail484</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 Fixes/improvements for assignment listing/summaries: (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail485</link><guid isPermaLink="false">job/dev-language/226/changes#detail485</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSummaryResultRow.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityLangMapEntryDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 Fixes/improvements for assignments listing: (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail486</link><guid isPermaLink="false">job/dev-language/226/changes#detail486</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 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. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail487</link><guid isPermaLink="false">job/dev-language/226/changes#detail487</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
</description></item><item><title>#226 Tighten up assignment list query to check for use of the assignment recipe. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail488</link><guid isPermaLink="false">job/dev-language/226/changes#detail488</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt
</description></item><item><title>#226 Add average score to student assignment list results. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail489</link><guid isPermaLink="false">job/dev-language/226/changes#detail489</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSummaryResultRow.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt
</description></item><item><title>#226 Move add school maestro test to pending flows: this is being disabled anyhow (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail490</link><guid isPermaLink="false">job/dev-language/226/changes#detail490</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_005_add_school_self_registration_test.yaml
.maestro/flows-pending/001_005_add_school_self_registration_test.yaml
</description></item><item><title>#226 Put in empty state message for assignment and class list screens. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail491</link><guid isPermaLink="false">job/dev-language/226/changes#detail491</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectEmptyListComponent.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 Block statement submission with the same id. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail492</link><guid isPermaLink="false">job/dev-language/226/changes#detail492</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiConflictException.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiException.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt
</description></item><item><title>#226 Add additional xapi statement validations. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail493</link><guid isPermaLink="false">job/dev-language/226/changes#detail493</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiRequire.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt
</description></item><item><title>#226 Remove visibility assertions for removed filter chips on assignment list screen. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail494</link><guid isPermaLink="false">job/dev-language/226/changes#detail494</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Add database migration for Xapi tables. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail495</link><guid isPermaLink="false">job/dev-language/226/changes#detail495</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
</description></item><item><title>#226 Add initial xapi statement write permission check. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail496</link><guid isPermaLink="false">job/dev-language/226/changes#detail496</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt
</description></item><item><title>#226 Add Xapi read permission checks. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail497</link><guid isPermaLink="false">job/dev-language/226/changes#detail497</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt
</description></item><item><title>#226 Implement auth user enforcement for Nanohttpd. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail498</link><guid isPermaLink="false">job/dev-language/226/changes#detail498</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdResourceProvider.kt
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/14.json
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiSessionEntity.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
</description></item><item><title>#226 Hide assignments when logged in as parent. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail499</link><guid isPermaLink="false">job/dev-language/226/changes#detail499</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/PersonExt.kt
</description></item><item><title>#226 Update handling of Xapi Activity extension updates: use a merge/update approach for canonical definition. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail500</link><guid isPermaLink="false">job/dev-language/226/changes#detail500</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/15.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityExtensionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt
</description></item><item><title>#226 Handle parsing deadline on assignment list screen. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail501</link><guid isPermaLink="false">job/dev-language/226/changes#detail501</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
</description></item><item><title>#226 Handle display of task icon(s) on assignment. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail502</link><guid isPermaLink="false">job/dev-language/226/changes#detail502</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
</description></item><item><title>#226 Fix learning unit detail screen to show assign button as expected. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail503</link><guid isPermaLink="false">job/dev-language/226/changes#detail503</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt
</description></item><item><title>#226 Fetch all CMI5 verbs that might have completion data for assignment list screen summary. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail504</link><guid isPermaLink="false">job/dev-language/226/changes#detail504</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
</description></item><item><title>#226 Add country dropdown to get started screen. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail505</link><guid isPermaLink="false">job/dev-language/226/changes#detail505</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/6.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/8.json
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/5.json
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectSchoolDirectory.kt
respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesMigration.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt
respect-lib-shared/src/androidMain/resources/directories/default.properties
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt
respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesFromPropertiesUseCase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryEntryAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntity.kt
respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddSchoolDirectoryCallback.kt
</description></item><item><title>#226 Bump version. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail506</link><guid isPermaLink="false">job/dev-language/226/changes#detail506</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/build.gradle.kts
</description></item><item><title>#226 Initial design to run xAPI over Android Messenger IPC. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail507</link><guid isPermaLink="false">job/dev-language/226/changes#detail507</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-client/proguard-rules.pro
respect-lib-xapi-ipc-server/consumer-rules.pro
respect-lib-xapi-ipc-server/src/main/AndroidManifest.xml
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/GetStatementParamsExt.kt
respect-lib-xapi-ipc-shared/src/main/AndroidManifest.xml
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
respect-lib-xapi-ipc-client/build.gradle.kts
gradle/libs.versions.toml
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/InstrumentationTestRunner.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt
respect-lib-xapi-ipc-shared/.gitignore
respect-lib-xapi-ipc-shared/consumer-rules.pro
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
respect-lib-xapi-ipc-client/.gitignore
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
respect-lib-xapi-ipc-server/build.gradle.kts
respect-lib-xapi-core/build.gradle.kts
settings.gradle.kts
respect-lib-xapi-ipc-shared/build.gradle.kts
respect-lib-xapi-ipc-shared/proguard-rules.pro
respect-lib-xapi-ipc-server/proguard-rules.pro
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
respect-lib-xapi-ipc-client/src/main/AndroidManifest.xml
respect-lib-xapi-ipc-server/.gitignore
respect-lib-xapi-ipc-client/consumer-rules.pro
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt
</description></item><item><title>#226 Update server side to support virtual host based directories. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail508</link><guid isPermaLink="false">job/dev-language/226/changes#detail508</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSourceLocal.kt
respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt
respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt
respect-server/src/main/resources/application.conf
</description></item><item><title>#226 Initial implementation of support for registering schools using a web form and server config set PIN. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail509</link><guid isPermaLink="false">job/dev-language/226/changes#detail509</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt
respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt
respect-server/src/main/resources/application.conf
</description></item><item><title>#226 Bump version (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail510</link><guid isPermaLink="false">job/dev-language/226/changes#detail510</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/build.gradle.kts
</description></item><item><title>#226 Update Maestro README with instructions on how to run a test controlled by a CI server on a local physical device. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail511</link><guid isPermaLink="false">job/dev-language/226/changes#detail511</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/README.md
</description></item><item><title>#226 Add tips on running Maestro tests on a physical local device from CI server. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail512</link><guid isPermaLink="false">job/dev-language/226/changes#detail512</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/README.md
</description></item><item><title>#226 Fix example ssh command (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail513</link><guid isPermaLink="false">job/dev-language/226/changes#detail513</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/README.md
</description></item><item><title>#226 Add xapi recipe for launchable app listing. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail514</link><guid isPermaLink="false">job/dev-language/226/changes#detail514</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_APPLISTING_RECIPE.md
respect-lib-opds-model/README_LAUNCHABLE_APP.md
</description></item><item><title>#226 Add xapi recipe for launchable app listing. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail515</link><guid isPermaLink="false">job/dev-language/226/changes#detail515</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_APPLISTING_RECIPE.md
</description></item><item><title>#226 Resolve conflicts (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail516</link><guid isPermaLink="false">job/dev-language/226/changes#detail516</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/15.json
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt
</description></item><item><title>#226 Remove echo of dir admin. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail517</link><guid isPermaLink="false">job/dev-language/226/changes#detail517</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update CODING_GUIDELINES.md (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail518</link><guid isPermaLink="false">job/dev-language/226/changes#detail518</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>CODING_GUIDELINES.md
</description></item><item><title>#226 Add recipe for classes management on xAPI. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail519</link><guid isPermaLink="false">job/dev-language/226/changes#detail519</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_CLASS_RECIPE.md
respect-lib-xapi-core/README_APPLISTING_RECIPE.md
</description></item><item><title>#226 Update README.md (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail520</link><guid isPermaLink="false">job/dev-language/226/changes#detail520</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/README.md
</description></item><item><title>#226 Update README.md (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail521</link><guid isPermaLink="false">job/dev-language/226/changes#detail521</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/README.md
</description></item><item><title>#226 Add AppListingSummary model for xAPI app listing recipe (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail522</link><guid isPermaLink="false">job/dev-language/226/changes#detail522</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AppListingSummary.kt
</description></item><item><title>#226 Implement xAPI app listing recipe and replace AppListingSummary with XapiStatement extension properties. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail523</link><guid isPermaLink="false">job/dev-language/226/changes#detail523</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AppListingSummary.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
</description></item><item><title>#226 Add xAPI extension functions required for common use cases. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail524</link><guid isPermaLink="false">job/dev-language/226/changes#detail524</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
respect-datalayer-repository/log/respect-server.2026-05-04.0.log
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/AssignmentResultExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementObjectExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActorExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActorExt.kt
</description></item><item><title>#226 Improvements for Xapi based data handling : work in progress. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail525</link><guid isPermaLink="false">job/dev-language/226/changes#detail525</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt
respect-app-compose/src/desktopMain/kotlin/world/respect/main.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
respect-app-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt
respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/LangMapExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/LangMapExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt
respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UiTextStringResource.kt
respect-app-compose/src/commonMain/kotlin/world/respect/App.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LocalAppLocale.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiText.kt
</description></item><item><title>#226 Remove `getAppListAsFlow` and associated XAPI application listing extensions. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail526</link><guid isPermaLink="false">job/dev-language/226/changes#detail526</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt
</description></item><item><title>#226 Add environment variables that can be used to set the url of the test app manifest for maestro testing. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail527</link><guid isPermaLink="false">job/dev-language/226/changes#detail527</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/README.md
.maestro/flows/subflows/admin_add_app.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/scripts/school_init.js
</description></item><item><title>#226 Update ci-run-maestro to pass TEST_APP_URL argument through. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail528</link><guid isPermaLink="false">job/dev-language/226/changes#detail528</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Refactor app listing and management to use xAPI statements instead of SchoolApp data sources. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail529</link><guid isPermaLink="false">job/dev-language/226/changes#detail529</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
</description></item><item><title>#226 Improve error message logging in xapi_assignable_unit.js . (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail530</link><guid isPermaLink="false">job/dev-language/226/changes#detail530</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js
respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/index.html
</description></item><item><title>#226 Initial implementation of lang map edit field. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail531</link><guid isPermaLink="false">job/dev-language/226/changes#detail531</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/SelectLang.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UiTextStringResource.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LangMapEditField.kt
</description></item><item><title>#226 Remove unused errorMessage from AppLauncherViewModel and add logging to AppListViewModel's app click handler. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail532</link><guid isPermaLink="false">job/dev-language/226/changes#detail532</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt
</description></item><item><title>#226 Initial implementation of lang map edit field. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail533</link><guid isPermaLink="false">job/dev-language/226/changes#detail533</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LangMapEditField.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditTaskListItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/SelectLangMapStringByLocale.kt
respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/LangMapExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LangMapTextField.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/SelectLang.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UiTextStringResource.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/langMapString.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityExt.kt
</description></item><item><title>#226 Fix AssignmentEditScreen (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail534</link><guid isPermaLink="false">job/dev-language/226/changes#detail534</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt
</description></item><item><title>#226 Refactor `XapiAppListingConstants` to use constants from `XapiVerb` and `OpenEelXapiConstants` directly. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail535</link><guid isPermaLink="false">job/dev-language/226/changes#detail535</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
</description></item><item><title>#226 Remove use of old langmap getTitle function. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail536</link><guid isPermaLink="false">job/dev-language/226/changes#detail536</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/DisplayString.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/SelectLangMapStringByLocale.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt
</description></item><item><title>#226 Update app title and description to use language maps in xAPI statements and AppListScreen. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail537</link><guid isPermaLink="false">job/dev-language/226/changes#detail537</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
</description></item><item><title>#226 add navigation from score cell to statment list screen (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail538</link><guid isPermaLink="false">job/dev-language/226/changes#detail538</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt
</description></item><item><title>#226 load statment from xapiStatementsResource (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail539</link><guid isPermaLink="false">job/dev-language/226/changes#detail539</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail540</link><guid isPermaLink="false">job/dev-language/226/changes#detail540</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt
</description></item><item><title>#226 Migrate legacy school apps to xAPI stream during account scope creation. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail541</link><guid isPermaLink="false">job/dev-language/226/changes#detail541</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/migrate/MigrateSchoolAppsToXapi.kt
</description></item><item><title>#226 Remove `migrateSchoolAppsToXapi` utility and clean up `ServerAccountScopeManager` logic. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail542</link><guid isPermaLink="false">job/dev-language/226/changes#detail542</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/domain/school/migrate/MigrateSchoolAppsToXapi.kt
respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt
</description></item><item><title>#226 Revert "Remove `migrateSchoolAppsToXapi` utility and clean up `ServerAccountScopeManager` logic." (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail543</link><guid isPermaLink="false">job/dev-language/226/changes#detail543</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/domain/school/migrate/MigrateSchoolAppsToXapi.kt
respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt
</description></item><item><title>#226 Revert "Migrate legacy school apps to xAPI stream during account scope creation." (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail544</link><guid isPermaLink="false">job/dev-language/226/changes#detail544</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/migrate/MigrateSchoolAppsToXapi.kt
</description></item><item><title>#226 update filter parameter and add definition fallback (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail545</link><guid isPermaLink="false">job/dev-language/226/changes#detail545</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt
</description></item><item><title>#226 Work in progress: update IpcTestApplication to provide create a school database. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail546</link><guid isPermaLink="false">job/dev-language/226/changes#detail546</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt
respect-lib-xapi-ipc-server/build.gradle.kts
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt
</description></item><item><title>#226 add statement detail and raw statement screen (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail547</link><guid isPermaLink="false">job/dev-language/226/changes#detail547</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/StatementDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/RawStatementScreen.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/DayOfWeekExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/StatementDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/DurationExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/util/RememberDayOrDate.kt
</description></item><item><title>#226 Refactor: Put all xapi related resources under the XapiResource interface. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail548</link><guid isPermaLink="false">job/dev-language/226/changes#detail548</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiAgentsResourceLocal.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActorDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityDataSourceDb.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivitiesResourceDb.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActorDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentsResourceDb.kt
respect-datalayer-repository/log/respect-server.2026-05-12.0.log
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivitiesResource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityDataSourceLocal.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivitiesResourceLocal.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt
</description></item><item><title>#226 Initial structure for reply/response IPC messenger. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail549</link><guid isPermaLink="false">job/dev-language/226/changes#detail549</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceFlags.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
respect-lib-xapi-ipc-shared/README.md
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderBinderImpl.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt
</description></item><item><title>#226 Initial working send/receive between IPC client and service. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail550</link><guid isPermaLink="false">job/dev-language/226/changes#detail550</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageReply.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderBinderImpl.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt
</description></item><item><title>#226 Integration test improvements: send actual xAPI statements. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail551</link><guid isPermaLink="false">job/dev-language/226/changes#detail551</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement-multiple-responses.json
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageData.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageReply.kt
respect-lib-test-resources/src/androidMain/assets/xapistatements/appendix-a-long-statement.json
respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement-invalid-response.json
respect-lib-test-resources/src/androidMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt
respect-lib-test-resources/src/androidMain/assets/xapistatements/sequencing-response-statement.json
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderBinderImpl.kt
respect-lib-test-resources/src/androidMain/assets/xapistatements/matching-response-statement.json
respect-lib-test-resources/src/commonMain/kotlin/world/respect/lib/test/res/XapiStatementNameConstants.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement.json
respect-lib-test-resources/src/androidMain/assets/xapistatements/true-false-response-statement.json
respect-lib-test-resources/src/androidMain/assets/xapistatements/simple-statement.json
respect-lib-test-resources/src/androidMain/assets/xapistatements/performance-response-statement.json
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/MessageExt.kt
respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-substatement.json
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.kt
respect-lib-xapi-ipc-server/build.gradle.kts
respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-actor.json
respect-lib-test-resources/src/androidMain/assets/xapistatements/Readme.txt
respect-lib-test-resources/src/androidMain/assets/xapistatements/group-statement.json
respect-lib-test-resources/src/androidMain/assets/xapistatements/likert-response-statement.json
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt
respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-statementref.json
respect-lib-test-resources/src/commonMain/kotlin/world/respect/lib/test/res/SampleXapiStatement.kt
</description></item><item><title>#226 Implement send/receive over IPC integration test. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail552</link><guid isPermaLink="false">job/dev-language/226/changes#detail552</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageData.kt
respect-lib-xapi-core/build.gradle.kts
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/StringValuesExt.kt
respect-lib-util/README.md
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleStringValues.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/StringValuesExt.kt
respect-lib-util/build.gradle.kts
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt
</description></item><item><title>#226 Initial implementation of converters from DataLoadState to/from Bundle. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail553</link><guid isPermaLink="false">job/dev-language/226/changes#detail553</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataLoadMetaInfoExt.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadState.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/GetStatementParamsExt.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiExceptionExt.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataReadyStateExt.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail554</link><guid isPermaLink="false">job/dev-language/226/changes#detail554</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/DurationExt.kt
</description></item><item><title>#226 xapi statment added (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail555</link><guid isPermaLink="false">job/dev-language/226/changes#detail555</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/SendLearningUnitTerminatedStatementUseCase.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiLearningUnitExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
</description></item><item><title>#226 commit (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail556</link><guid isPermaLink="false">job/dev-language/226/changes#detail556</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item><item><title>#226 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. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail557</link><guid isPermaLink="false">job/dev-language/226/changes#detail557</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail558</link><guid isPermaLink="false">job/dev-language/226/changes#detail558</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt
</description></item><item><title>#226 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. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail559</link><guid isPermaLink="false">job/dev-language/226/changes#detail559</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail560</link><guid isPermaLink="false">job/dev-language/226/changes#detail560</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail561</link><guid isPermaLink="false">job/dev-language/226/changes#detail561</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt
</description></item><item><title>#226 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. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail562</link><guid isPermaLink="false">job/dev-language/226/changes#detail562</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Update Maestro flow `003_admin_user_assigns_assignment_to_a_class_test.yaml` to use the correct resource ID for the options menu. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail563</link><guid isPermaLink="false">job/dev-language/226/changes#detail563</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail564</link><guid isPermaLink="false">job/dev-language/226/changes#detail564</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
</description></item><item><title>#226 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. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail565</link><guid isPermaLink="false">job/dev-language/226/changes#detail565</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 commit (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail566</link><guid isPermaLink="false">job/dev-language/226/changes#detail566</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/SendLearningUnitTerminatedStatementUseCase.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item><item><title>#226 Improve error handling for Xapi IPC messaging. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail567</link><guid isPermaLink="false">job/dev-language/226/changes#detail567</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiLocalInvalidation.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderBinderImpl.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt
</description></item><item><title>#226 Move XapiMessengerService to using its own thread. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail568</link><guid isPermaLink="false">job/dev-language/226/changes#detail568</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
</description></item><item><title>#226 Refactor to use a single XapiException to avoid issues converting to/from messages, http, etc. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail569</link><guid isPermaLink="false">job/dev-language/226/changes#detail569</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderBinderImpl.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiForbiddenException.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiBadRequestException.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiConflictException.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeBinderImpl.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridge.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiRequire.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt
</description></item><item><title>#226 Refactor XapiResource post function to use DataLoadState (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail570</link><guid isPermaLink="false">job/dev-language/226/changes#detail570</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
</description></item><item><title>#226 Initial implementation of flow support for Xapi over IPC. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail571</link><guid isPermaLink="false">job/dev-language/226/changes#detail571</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageData.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceFlags.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeBinderImpl.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridge.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcTags.kt
</description></item><item><title>#226 Initial implementation of flow support for Xapi over IPC. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail572</link><guid isPermaLink="false">job/dev-language/226/changes#detail572</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageData.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeBinderImpl.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
</description></item><item><title>#226 removed code (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail573</link><guid isPermaLink="false">job/dev-language/226/changes#detail573</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
</description></item><item><title>#226 commit (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail574</link><guid isPermaLink="false">job/dev-language/226/changes#detail574</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
</description></item><item><title>#226 commit (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail575</link><guid isPermaLink="false">job/dev-language/226/changes#detail575</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
.maestro/flows-pending/001_003_login_using_school_link_test.yaml
.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
.maestro/flows-pending/002_browse_lessons_test.yaml
.maestro/flows-pending/001_002_add_user_direct_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
</description></item><item><title>#226 commit (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail576</link><guid isPermaLink="false">job/dev-language/226/changes#detail576</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
</description></item><item><title>#226 commit (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail577</link><guid isPermaLink="false">job/dev-language/226/changes#detail577</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
</description></item><item><title>#226 commit (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail578</link><guid isPermaLink="false">job/dev-language/226/changes#detail578</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
</description></item><item><title>#226 Standardize jvm version to 17 and add Xapi IPC Binder message bridge. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail579</link><guid isPermaLink="false">job/dev-language/226/changes#detail579</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-server/src/main/AndroidManifest.xml
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeMessengerImpl.kt
respect-lib-xapi-ipc-server/build.gradle.kts
respect-app-compose/src/androidMain/AndroidManifest.xml
respect-lib-ihttp-iostreams/build.gradle.kts
respect-lib-ihttp-core/build.gradle.kts
respect-lib-xapi-core/build.gradle.kts
respect-lib-xapi-ipc-shared/build.gradle.kts
respect-server/build.gradle.kts
respect-lib-xapi-ipc-client/build.gradle.kts
respect-lib-serializers/build.gradle.kts
gradle.properties
README.md
respect-lib-util/build.gradle.kts
respect-cli/build.gradle.kts
build.gradle.kts
respect-app-compose/build.gradle.kts
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeBinderImpl.kt
respect-lib-dataloadstate/build.gradle.kts
</description></item><item><title>#226 commit (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail580</link><guid isPermaLink="false">job/dev-language/226/changes#detail580</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/001_005_add_school_self_registration_test.yaml
.maestro/flows-pending/002_browse_lessons_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/flows-pending/001_003_login_using_school_link_test.yaml
.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt
.maestro/flows-pending/001_005_add_school_self_registration_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
.maestro/flows-pending/001_002_add_user_direct_test.yaml
</description></item><item><title>#226 commit (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail581</link><guid isPermaLink="false">job/dev-language/226/changes#detail581</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_005_add_school_self_registration_test.yaml
.maestro/flows-pending/001_005_add_school_self_registration_test.yaml
</description></item><item><title>#226 Remove XapiNanoHttpdResourceProvider in favor of a single XapiResourceProvider that can work for IPC and NanoHttpd, Ktor server, etc. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail582</link><guid isPermaLink="false">job/dev-language/226/changes#detail582</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdResourceProvider.kt
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiNanoHttpdResourceProviderAndroid.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiResourceProviderAndroid.kt
respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt
respect-lib-xapi-ipc-server/src/androidTest/AndroidManifest.xml
</description></item><item><title>#226 Initial implementation that receives an xAPI statement over IPC and saves it in the database as expected. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail583</link><guid isPermaLink="false">job/dev-language/226/changes#detail583</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/native_demo/index.json
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeMessengerImpl.kt
respect-server/src/main/resources/http/respect-ds/native_demo/lesson001/lesson001.json
respect-server/src/main/resources/http/respect-ds/native_demo/lesson001/lesson001.html
respect-lib-xapi-ipc-shared/build.gradle.kts
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt
respect-lib-shared/build.gradle.kts
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
respect-lib-xapi-ipc-client/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt
respect-server/src/main/resources/http/respect-ds/native_demo/appmanifest.json
gradle.properties
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridge.kt
</description></item><item><title>#226 Xapi over IPC: Send IPC service package name as a parameter. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail584</link><guid isPermaLink="false">job/dev-language/226/changes#detail584</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt
respect-lib-shared/build.gradle.kts
gradle.properties
</description></item><item><title>#226 Add Xapi IPC client builder class. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail585</link><guid isPermaLink="false">job/dev-language/226/changes#detail585</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcClientBuilder.kt
gradle.properties
</description></item><item><title>#226 Introduce version as environment variable for use by test server controller. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail586</link><guid isPermaLink="false">job/dev-language/226/changes#detail586</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-shared/README.md
ci-run-maestro.sh
build.gradle.kts
ci-run-test-server.sh
README.md
</description></item><item><title>#226 Fix ci-run-maestro script and make it quieter. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail587</link><guid isPermaLink="false">job/dev-language/226/changes#detail587</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Initial update to provide openeel assignment_id support on xAPI IPC service. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail588</link><guid isPermaLink="false">job/dev-language/226/changes#detail588</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
respect-lib-xapi-ipc-server/build.gradle.kts
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt
respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/UrlExt.kt
gradle.properties
</description></item><item><title>#226 Handle assignment recipe statement transform for (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail589</link><guid isPermaLink="false">job/dev-language/226/changes#detail589</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-server/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
respect-server/src/main/resources/http/respect-ds/native_demo/lesson001/lesson001.json
</description></item><item><title>#226 Bump version. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail590</link><guid isPermaLink="false">job/dev-language/226/changes#detail590</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>gradle.properties
</description></item><item><title>#226 Remove unused XapiLocalInvalidation.kt and placeholders. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail591</link><guid isPermaLink="false">job/dev-language/226/changes#detail591</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiLocalInvalidation.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt
</description></item><item><title>#226 Logging improvements for XapiIpc. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail592</link><guid isPermaLink="false">job/dev-language/226/changes#detail592</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeMessengerImpl.kt
respect-app-compose/src/androidMain/AndroidManifest.xml
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
respect-lib-xapi-ipc-server/src/androidTest/AndroidManifest.xml
gradle.properties
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcClientBuilder.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt
</description></item><item><title>#226 Add ipc server package to logging messages. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail593</link><guid isPermaLink="false">job/dev-language/226/changes#detail593</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt
gradle.properties
</description></item><item><title>#226 Minor: Spelling correction and remove unused imports. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail594</link><guid isPermaLink="false">job/dev-language/226/changes#detail594</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/AndroidManifest.xml
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt
</description></item><item><title>#226 Update native demo case. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail595</link><guid isPermaLink="false">job/dev-language/226/changes#detail595</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/native_demo/index.json
respect-server/src/main/resources/http/respect-ds/native_demo/Lesson-manifest.json
respect-server/src/main/resources/http/respect-ds/native_demo/lesson001/lesson001.json
respect-app-compose/README.md
respect-server/src/main/resources/http/respect-ds/native_demo/lesson001/lesson001.html
respect-server/src/main/resources/http/respect-ds/native_demo/Lesson
respect-server/src/main/resources/http/respect-ds/native_demo/appmanifest.json
</description></item><item><title>#226 E2E Database Upload Feature (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail596</link><guid isPermaLink="false">job/dev-language/226/changes#detail596</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
.maestro/flows/subflows/send_db_to_server.yaml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/testing/SendDbToServerViewModel.kt
respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCaseClient.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-server/src/main/resources/application.conf
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt
</description></item><item><title>#226 E2E Database Upload Feature (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail597</link><guid isPermaLink="false">job/dev-language/226/changes#detail597</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/GetDbFilesForUploadUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/GetDbFilesForUploadUseCase.kt
respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt
</description></item><item><title>#226 pull req comments (nikunj)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail598</link><guid isPermaLink="false">job/dev-language/226/changes#detail598</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/GetDbFilesForUploadUseCaseAndroid.kt
respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolDbPath.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item><item><title>#226 PRAGMA_CHECKPOINT added (nikunj)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail599</link><guid isPermaLink="false">job/dev-language/226/changes#detail599</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/GetDbFilesForUploadUseCaseAndroid.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item><item><title>#226 Update Maestro browse lessons test flow with offline download and verification steps. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail600</link><guid isPermaLink="false">job/dev-language/226/changes#detail600</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
</description></item><item><title>#226 Update Maestro browse lessons test to verify offline access after app restart. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail601</link><guid isPermaLink="false">job/dev-language/226/changes#detail601</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
</description></item><item><title>#226 Update Maestro browse lessons test to assert on connection error. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail602</link><guid isPermaLink="false">job/dev-language/226/changes#detail602</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
</description></item><item><title>#226 Update Maestro browse lessons test to use a more generic error message assertion. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail603</link><guid isPermaLink="false">job/dev-language/226/changes#detail603</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
</description></item><item><title>#226 commit (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail604</link><guid isPermaLink="false">job/dev-language/226/changes#detail604</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows-pending/002_browse_lessons_test.yaml
.maestro/flows-pending/001_002_add_user_direct_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
respect-server/src/main/resources/application.conf
</description></item><item><title>#226 Update `ci-run-maestro.sh` to save database files from each E2E test flow into a dedicated build folder for analysis. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail605</link><guid isPermaLink="false">job/dev-language/226/changes#detail605</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update Maestro CI script to extract the test server port and use it for database file renaming. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail606</link><guid isPermaLink="false">job/dev-language/226/changes#detail606</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update directory naming and path handling in `ci-run-maestro.sh`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail607</link><guid isPermaLink="false">job/dev-language/226/changes#detail607</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update Maestro CI script to use curly braces for the `TEST_PORT` environment variable. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail608</link><guid isPermaLink="false">job/dev-language/226/changes#detail608</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Ensure only the first port match is extracted from logs in `ci-run-maestro.sh`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail609</link><guid isPermaLink="false">job/dev-language/226/changes#detail609</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update port extraction logic in `ci-run-maestro.sh` to correctly parse port numbers from URLs in log files. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail610</link><guid isPermaLink="false">job/dev-language/226/changes#detail610</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Refactor `ci-run-maestro.sh` to retrieve the test port via API call and simplify database path handling. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail611</link><guid isPermaLink="false">job/dev-language/226/changes#detail611</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update CI Maestro script to dynamically resolve database filenames from log output. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail612</link><guid isPermaLink="false">job/dev-language/226/changes#detail612</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update `ci-run-maestro.sh` to target the specific `respect-server.log` file path for Maestro E2E test logs. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail613</link><guid isPermaLink="false">job/dev-language/226/changes#detail613</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update `ci-run-maestro.sh` to extract filenames from the correct log path and add validation for empty filenames. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail614</link><guid isPermaLink="false">job/dev-language/226/changes#detail614</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update Maestro CI script to use `ROOTDIR` instead of `WORKSPACE` for test log and database paths. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail615</link><guid isPermaLink="false">job/dev-language/226/changes#detail615</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Refactor Maestro E2E test database extraction in CI script. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail616</link><guid isPermaLink="false">job/dev-language/226/changes#detail616</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Remove database backup logic from the Maestro CI script. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail617</link><guid isPermaLink="false">job/dev-language/226/changes#detail617</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 addede send_db_to_server command in all test (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail618</link><guid isPermaLink="false">job/dev-language/226/changes#detail618</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows-pending/002_browse_lessons_test.yaml
.maestro/flows-pending/001_002_add_user_direct_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Update `ci-run-maestro.sh` to log Cloud run status and define `MAESTRO_LOG_FILE` before extracting the URL. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail619</link><guid isPermaLink="false">job/dev-language/226/changes#detail619</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update Maestro CI script to back up test databases and refine flow naming. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail620</link><guid isPermaLink="false">job/dev-language/226/changes#detail620</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
</description></item><item><title>#226 Fix SelectLang.kt to use the code string exactly as found in the availableLocales. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail621</link><guid isPermaLink="false">job/dev-language/226/changes#detail621</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/SelectLang.kt
</description></item><item><title>#226 Add use case to get Opds Publication for a given XapiActivity. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail622</link><guid isPermaLink="false">job/dev-language/226/changes#detail622</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item><item><title>#226 Restore the icon (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail623</link><guid isPermaLink="false">job/dev-language/226/changes#detail623</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt
</description></item><item><title>#226 Remove database file backup logic from Maestro CI script. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail624</link><guid isPermaLink="false">job/dev-language/226/changes#detail624</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update XapiStatementsResourceDb and DAOs to allow all users read access to list of apps. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail625</link><guid isPermaLink="false">job/dev-language/226/changes#detail625</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
</description></item><item><title>#226 Refactor app list to use OPDS catalog from school configuration instead of xAPI statements. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail626</link><guid isPermaLink="false">job/dev-language/226/changes#detail626</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt
</description></item><item><title>#226 Remove unused imports in `AppBar.kt`. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail627</link><guid isPermaLink="false">job/dev-language/226/changes#detail627</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt
</description></item><item><title>#226 Move several Maestro E2E test flows to the flows-pending directory. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail628</link><guid isPermaLink="false">job/dev-language/226/changes#detail628</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows-pending/001_002_add_user_direct_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
</description></item><item><title>#226 Move user invitation and class assignment Maestro tests from pending to active flows. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail629</link><guid isPermaLink="false">job/dev-language/226/changes#detail629</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows-pending/001_002_add_user_direct_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
</description></item><item><title>#226 Remove unused openeelxapiconstant val. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail630</link><guid isPermaLink="false">job/dev-language/226/changes#detail630</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt
</description></item><item><title>#226 Update to use xapiResource.statements. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail631</link><guid isPermaLink="false">job/dev-language/226/changes#detail631</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/StatementDetailViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt
</description></item><item><title>#226 DB_EXTENSION added (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail632</link><guid isPermaLink="false">job/dev-language/226/changes#detail632</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolDbPath.kt
</description></item><item><title>#226 added file name (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail633</link><guid isPermaLink="false">job/dev-language/226/changes#detail633</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
.maestro/flows/subflows/send_db_to_server.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/testing/SendDbToServerViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCaseClient.kt
respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCase.kt
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt
</description></item><item><title>#226 add empty state on statemnt list screen and show bottom bar (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail634</link><guid isPermaLink="false">job/dev-language/226/changes#detail634</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/StatementDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/StatementDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt
</description></item><item><title>#226 Update Maestro E2E test to replace multiple back navigations with direct tab navigation and verify assignment edit functionality. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail635</link><guid isPermaLink="false">job/dev-language/226/changes#detail635</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Update Maestro E2E test for admin assignment to verify "Statement Maker" activity details. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail636</link><guid isPermaLink="false">job/dev-language/226/changes#detail636</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Update Maestro E2E test to verify going to the statement list even when there is no result for the assigned unit yet (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail637</link><guid isPermaLink="false">job/dev-language/226/changes#detail637</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 update RespectEmptyListComponent for reuse (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail638</link><guid isPermaLink="false">job/dev-language/226/changes#detail638</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectEmptyListComponent.kt
</description></item><item><title>#226 Refactor Maestro E2E test teardown logic and move several tests to pending. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail639</link><guid isPermaLink="false">job/dev-language/226/changes#detail639</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/flows-pending/001_003_login_using_school_link_test.yaml
.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows-pending/002_browse_lessons_test.yaml
.maestro/flows-pending/001_002_add_user_direct_test.yaml
.maestro/flows/subflows/teardown.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Update Maestro teardown configuration in pending flows to include environment variables. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail640</link><guid isPermaLink="false">job/dev-language/226/changes#detail640</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows-pending/002_browse_lessons_test.yaml
.maestro/flows-pending/001_003_login_using_school_link_test.yaml
.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows-pending/001_002_add_user_direct_test.yaml
.maestro/flows-pending/001_005_add_school_self_registration_test.yaml
</description></item><item><title>#226 send db to server activity added (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail641</link><guid isPermaLink="false">job/dev-language/226/changes#detail641</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/GetDbFilesForUploadUseCaseAndroid.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt
.maestro/flows/subflows/admin_add_student.yaml
.maestro/flows/002_browse_lessons_test.yaml
respect-app-compose/src/androidMain/AndroidManifest.xml
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt
.maestro/flows/001_002_add_user_direct_test.yaml
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
</description></item><item><title>#226 Update the teardown subflow configuration in the admin assignment E2E test to use `db-final`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail642</link><guid isPermaLink="false">job/dev-language/226/changes#detail642</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Add a function to `ci-run-maestro.sh` to archive test artifacts into a zip file. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail643</link><guid isPermaLink="false">job/dev-language/226/changes#detail643</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Ensure artifact zip creation on exit in `ci-run-maestro.sh` using a trap. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail644</link><guid isPermaLink="false">job/dev-language/226/changes#detail644</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Exclude `respect-server` directories from the Maestro CI output zip. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail645</link><guid isPermaLink="false">job/dev-language/226/changes#detail645</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update the artifact ZIP output path to the build directory in `ci-run-maestro.sh`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail646</link><guid isPermaLink="false">job/dev-language/226/changes#detail646</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Add cleanup step to remove old test database artifact ZIP files. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail647</link><guid isPermaLink="false">job/dev-language/226/changes#detail647</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 commit (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail648</link><guid isPermaLink="false">job/dev-language/226/changes#detail648</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows-pending/001_003_login_using_school_link_test.yaml
.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt
.maestro/flows-pending/002_browse_lessons_test.yaml
.maestro/flows-pending/001_002_add_user_direct_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/subflows/teardown.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt
</description></item><item><title>#226 commit (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail649</link><guid isPermaLink="false">job/dev-language/226/changes#detail649</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt
</description></item><item><title>#226 Resolve conflicts (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail650</link><guid isPermaLink="false">job/dev-language/226/changes#detail650</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail651</link><guid isPermaLink="false">job/dev-language/226/changes#detail651</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
</description></item><item><title>#226 Update the Maestro CI script to refine test artifact archiving. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail652</link><guid isPermaLink="false">job/dev-language/226/changes#detail652</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update `ci-run-maestro.sh` to include all workspace directories in test artifacts and exclude unnecessary log files. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail653</link><guid isPermaLink="false">job/dev-language/226/changes#detail653</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 clean up and main merged (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail654</link><guid isPermaLink="false">job/dev-language/226/changes#detail654</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt
</description></item><item><title>#226 clean up (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail655</link><guid isPermaLink="false">job/dev-language/226/changes#detail655</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/testing/SendDbToServerViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt
respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt
</description></item><item><title>#226 Add support for programmatically setting extra response headers on UstadCache. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail656</link><guid isPermaLink="false">job/dev-language/226/changes#detail656</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearch.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HeadersExt.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearchTest.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndLocks.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderApplyNoVarySearch.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryExtraHeaders.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryExtraHeadersDao.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt
</description></item><item><title>#226 Add cache database update. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail657</link><guid isPermaLink="false">job/dev-language/226/changes#detail657</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json
</description></item><item><title>#226 Add support for parsing NoVarySearch header and normalizing URLs based on the NoVarySearch header. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail658</link><guid isPermaLink="false">job/dev-language/226/changes#detail658</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearch.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/UrlBuilderApplyNoVarySearchTest.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheTrimmerTest.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearchTest.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryDao.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderApplyNoVarySearch.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt
</description></item><item><title>#226 Work in progress refactoring UstadCacheImpl to use Cache4k for in memory cache. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail659</link><guid isPermaLink="false">job/dev-language/226/changes#detail659</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/UrlBuilderApplyNoVarySearchTest.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/CacheEntryExt.kt
respect-lib-cache/build.gradle.kts
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderNormalizeForNoVarySearch.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntry.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt
respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderApplyNoVarySearch.kt
gradle/libs.versions.toml
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RetentionLock.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/UrlNormalizeForNoVarySearch.kt
</description></item><item><title>#226 Update file exclusion patterns in the CI Maestro artifact zip command to correctly target nested log and data files. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail660</link><guid isPermaLink="false">job/dev-language/226/changes#detail660</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Work in progress refactoring UstadCacheImpl to use Cache4k for in memory cache. Now passes UstadCacheJvmTest. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail661</link><guid isPermaLink="false">job/dev-language/226/changes#detail661</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/CacheEntryExt.kt
respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheExtraHeaderProvider.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt
</description></item><item><title>#226 Add cache listener onstored call. All cache jvmtests now pass. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail662</link><guid isPermaLink="false">job/dev-language/226/changes#detail662</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
</description></item><item><title>#226 Add cache listener onstored call. All cache jvmtests pass and build succeeds. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail663</link><guid isPermaLink="false">job/dev-language/226/changes#detail663</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt
</description></item><item><title>#226 Update database migrations for UstadCacheDb. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail664</link><guid isPermaLink="false">job/dev-language/226/changes#detail664</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryExtraHeaders.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryExtraHeadersDao.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt
respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt
</description></item><item><title>#226 Exclude `server.properties` from Maestro test artifact zip files. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail665</link><guid isPermaLink="false">job/dev-language/226/changes#detail665</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail666</link><guid isPermaLink="false">job/dev-language/226/changes#detail666</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 clean up (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail667</link><guid isPermaLink="false">job/dev-language/226/changes#detail667</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/build.gradle.kts
respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt
respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt
gradle/libs.versions.toml
</description></item><item><title>#226 commit (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail668</link><guid isPermaLink="false">job/dev-language/226/changes#detail668</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt
</description></item><item><title>#226 Add database integrity check to Maestro CI script. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail669</link><guid isPermaLink="false">job/dev-language/226/changes#detail669</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Add database integrity check to `ci-run-maestro.sh`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail670</link><guid isPermaLink="false">job/dev-language/226/changes#detail670</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update database integrity check logic in `ci-run-maestro.sh` and move several Maestro flows to `flows-pending`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail671</link><guid isPermaLink="false">job/dev-language/226/changes#detail671</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
ci-run-maestro.sh
.maestro/flows-pending/001_002_add_user_direct_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Move Maestro invitation and assignment tests from pending to active flows. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail672</link><guid isPermaLink="false">job/dev-language/226/changes#detail672</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows-pending/001_002_add_user_direct_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
</description></item><item><title>#226 Initial implementation of cache support for the No-Vary-Search header with passing unit tests. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail673</link><guid isPermaLink="false">job/dev-language/226/changes#detail673</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestExt.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/UstadCacheDbExt.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheTrimmerTest.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntry.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryDao.kt
respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/UrlNormalizeForNoVarySearch.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt
</description></item><item><title>#226 Sort student list alphabetically in assignment detail view (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail674</link><guid isPermaLink="false">job/dev-language/226/changes#detail674</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
</description></item><item><title>#226 e2e-uploads to e2e-client-db-uploads (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail675</link><guid isPermaLink="false">job/dev-language/226/changes#detail675</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/Application.kt
ci-run-maestro.sh
</description></item><item><title>#226 Update the naming convention for Maestro test artifact ZIP files. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail676</link><guid isPermaLink="false">job/dev-language/226/changes#detail676</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Fix (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail677</link><guid isPermaLink="false">job/dev-language/226/changes#detail677</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
.maestro/flows/subflows/admin_add_app.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-server/src/main/resources/http/respect-ds/case_valid/index.json
</description></item><item><title>#226 Fix (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail678</link><guid isPermaLink="false">job/dev-language/226/changes#detail678</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
</description></item><item><title>#226 Update the artifact filename format in `ci-run-maestro.sh`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail679</link><guid isPermaLink="false">job/dev-language/226/changes#detail679</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update the artifact filename format in `ci-run-maestro.sh`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail680</link><guid isPermaLink="false">job/dev-language/226/changes#detail680</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Updated test 002 with latest app-lessons (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail681</link><guid isPermaLink="false">job/dev-language/226/changes#detail681</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/lesson002.json
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/grade1.json
.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/cover.png
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/video.mp4
respect-server/src/main/resources/http/respect-ds/case_valid/grade1/lesson002/lesson002.html
</description></item><item><title>#226 Restore support for setting extra headers on UstadCache ahead of time. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail682</link><guid isPermaLink="false">job/dev-language/226/changes#detail682</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/17.json
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearch.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/CacheEntryExt.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheExtraHeaderProvider.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryExtraHeaders.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt
respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/UstadCacheDbExt.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryExtraHeadersDao.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt
</description></item><item><title>#226 Automatically add NoVarySearch headers to links that are going to be launched with Xapi Rustici launch method parameters. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail683</link><guid isPermaLink="false">job/dev-language/226/changes#detail683</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt
</description></item><item><title>#226 Update Maestro E2E test assertions and improve tap selector reliability. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail684</link><guid isPermaLink="false">job/dev-language/226/changes#detail684</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/subflows/admin_add_app.yaml
</description></item><item><title>#226 Update Maestro browse lessons test to verify JS Tetris visibility and Tin Can Home assertions. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail685</link><guid isPermaLink="false">job/dev-language/226/changes#detail685</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
</description></item><item><title>#226 Update Maestro browse lessons test to use Assignment Result Statement Demo and verify offline functionality. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail686</link><guid isPermaLink="false">job/dev-language/226/changes#detail686</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
</description></item><item><title>#226 Move Maestro E2E test flows to test 002 (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail687</link><guid isPermaLink="false">job/dev-language/226/changes#detail687</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/flows-pending/001_003_login_using_school_link_test.yaml
.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows-pending/001_002_add_user_direct_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail688</link><guid isPermaLink="false">job/dev-language/226/changes#detail688</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Fix ConnectivityMonitorAndroid : set default connectivity to false. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail689</link><guid isPermaLink="false">job/dev-language/226/changes#detail689</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt
</description></item><item><title>#226 excception added (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail690</link><guid isPermaLink="false">job/dev-language/226/changes#detail690</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt
</description></item><item><title>#226 Update `ci-run-maestro.sh` to include a configurable device OS version for Maestro Cloud runs, defaulting to `android-35`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail691</link><guid isPermaLink="false">job/dev-language/226/changes#detail691</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Hardcode Maestro Cloud device OS to "android-35" and disable dynamic `DEVICE_OS` assignment in `ci-run-maestro.sh`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail692</link><guid isPermaLink="false">job/dev-language/226/changes#detail692</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Correct the Maestro cloud CLI parameter from `--device-os` to `--device-locale`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail693</link><guid isPermaLink="false">job/dev-language/226/changes#detail693</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update Maestro cloud test configuration to use the `--device-os` argument for Android 35. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail694</link><guid isPermaLink="false">job/dev-language/226/changes#detail694</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Add `MAESTRO_CLOUD_DEVICEOS` environment variable validation and parameterize the device OS in the Maestro cloud command. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail695</link><guid isPermaLink="false">job/dev-language/226/changes#detail695</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update `ci-run-maestro.sh` to dynamically handle Maestro Cloud device OS arguments and upgrade the Android API level to 35. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail696</link><guid isPermaLink="false">job/dev-language/226/changes#detail696</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Remove the `MAESTRO_CLOUD_DEVICEOS` environment variable requirement from the Maestro CI script. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail697</link><guid isPermaLink="false">job/dev-language/226/changes#detail697</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update `ci-run-maestro.sh` to fix a syntax error in the Maestro Cloud command. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail698</link><guid isPermaLink="false">job/dev-language/226/changes#detail698</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update `ci-run-maestro.sh` to use the `--device-os` argument for Maestro Cloud and simplify version detection logic. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail699</link><guid isPermaLink="false">job/dev-language/226/changes#detail699</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Reorder maestro cloud command arguments in ci-run-maestro.sh. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail700</link><guid isPermaLink="false">job/dev-language/226/changes#detail700</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Fix launching xAPI links offline (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail701</link><guid isPermaLink="false">job/dev-language/226/changes#detail701</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/unit.json
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
</description></item><item><title>#226 Avoid unnecessary new Md5Digest (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail702</link><guid isPermaLink="false">job/dev-language/226/changes#detail702</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
</description></item><item><title>#226 Move tests back from flows pending to flows. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail703</link><guid isPermaLink="false">job/dev-language/226/changes#detail703</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows-pending/001_003_login_using_school_link_test.yaml
.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows-pending/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows-pending/001_002_add_user_direct_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Set extra headers for lesson launch url at the earliest opportunity. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail704</link><guid isPermaLink="false">job/dev-language/226/changes#detail704</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
</description></item><item><title>#226 Update LaunchAppUseCaseAndroid to remove only the Xapi Launch params from a URL. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail705</link><guid isPermaLink="false">job/dev-language/226/changes#detail705</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/SelectLangMapStringByLocale.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/LaunchNoVarySearchConstants.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/LruMap.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/UrlNormalizeForNoVarySearch.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt
</description></item><item><title>#226 Fix cache jvmtest compilation: missed changing a constant. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail706</link><guid isPermaLink="false">job/dev-language/226/changes#detail706</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt
</description></item><item><title>#226 Remove (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail707</link><guid isPermaLink="false">job/dev-language/226/changes#detail707</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt
</description></item><item><title>#226 Remove check for empty statement list (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail708</link><guid isPermaLink="false">job/dev-language/226/changes#detail708</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail709</link><guid isPermaLink="false">job/dev-language/226/changes#detail709</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/RawStatementScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt
</description></item><item><title>#226 Fix: Use Uuid type for statementId in RawStatement navigation (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail710</link><guid isPermaLink="false">job/dev-language/226/changes#detail710</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt
</description></item><item><title>#226 changes related pull request comments (nikunj.sharma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail711</link><guid isPermaLink="false">job/dev-language/226/changes#detail711</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt
respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt
respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt
ci-run-test-server.sh
respect-server/src/main/resources/application.conf
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
</description></item><item><title>#226 Remove check for empty statement list (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail712</link><guid isPermaLink="false">job/dev-language/226/changes#detail712</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/E2EArtifactUploadActivity.kt
respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/GetDbFilesForUploadUseCaseAndroid.kt
respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt
respect-app-compose/src/androidMain/AndroidManifest.xml
respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCaseClient.kt
respect-server/src/main/kotlin/world/respect/server/routes/e2e/ReceiveDbRoute.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/SendDbToServerUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/testing/GetDbFilesForUploadUseCase.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCase.kt
respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/testing/SendDbToServerActivity.kt
ci-run-test-server.sh
respect-server/src/main/kotlin/world/respect/server/routes/e2etestartifactsroute/E2ETestArtifactsRoute.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCaseClient.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiLearningUnitExt.kt
respect-server/src/main/resources/application.conf
</description></item><item><title>#226 Fixes and improvements for sending e2e test artifacts to the server. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail713</link><guid isPermaLink="false">job/dev-language/226/changes#detail713</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/E2EArtifactUploadActivity.kt
.maestro/flows/subflows/admin_add_student.yaml
.maestro/flows/subflows/e2e_artifact_upload.yaml
.maestro/flows/scripts/school_init.js
respect-app-compose/src/androidMain/AndroidManifest.xml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/subflows/teardown.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/README.md
.maestro/flows/subflows/send_db_to_server.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCase.kt
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCaseClient.kt
respect-server/src/main/kotlin/world/respect/server/routes/e2etestartifactsroute/E2ETestArtifactsRoute.kt
</description></item><item><title>#226 Update ci-run-maestro.sh to use directory name as per E2ETestArtifactsUseCase. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail714</link><guid isPermaLink="false">job/dev-language/226/changes#detail714</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update Maestro Cloud command execution order by moving `$DEVICE_OS_ARG`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail715</link><guid isPermaLink="false">job/dev-language/226/changes#detail715</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update `MAESTRO_CLOUD_URL` extraction in `ci-run-maestro.sh` to support any host with a stable `/upload/` path. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail716</link><guid isPermaLink="false">job/dev-language/226/changes#detail716</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update logic for retrieving `MAESTRO_CLOUD_URL` in `ci-run-cypress.sh`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail717</link><guid isPermaLink="false">job/dev-language/226/changes#detail717</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Move Maestro E2E test flows to a pending directory. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail718</link><guid isPermaLink="false">job/dev-language/226/changes#detail718</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows-pending/001_003_login_using_school_link_test.yaml
.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows-pending/002_browse_lessons_test.yaml
.maestro/flows-pending/001_002_add_user_direct_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
</description></item><item><title>#226 Remove Zammad (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail719</link><guid isPermaLink="false">job/dev-language/226/changes#detail719</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/FeedbackSubmittedScreen.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/FeedbackSubmittedViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.kt
</description></item><item><title>#226 Remove Zammad (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail720</link><guid isPermaLink="false">job/dev-language/226/changes#detail720</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackCategory.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/ZammadTicketResponse.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/feedback/FeedbackTicket.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item><item><title>#226 Move Maestro E2E tests from flows-pending to flows. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail721</link><guid isPermaLink="false">job/dev-language/226/changes#detail721</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows-pending/001_003_login_using_school_link_test.yaml
.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/flows-pending/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows-pending/002_browse_lessons_test.yaml
.maestro/flows-pending/001_002_add_user_direct_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
</description></item><item><title>#226 Remove Zammad (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail722</link><guid isPermaLink="false">job/dev-language/226/changes#detail722</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/build.gradle.kts
.gitignore
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
</description></item><item><title>#226 Update comment in `ci-run-cypress.sh` for clarity on Maestro Cloud URL retrieval. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail723</link><guid isPermaLink="false">job/dev-language/226/changes#detail723</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Refactor (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail724</link><guid isPermaLink="false">job/dev-language/226/changes#detail724</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-test-end-to-end/test-description/007_001_user_signup_using_passkey_test_description.md
respect-test-end-to-end/test-description/006_002_user_send_feedback_test.md
</description></item><item><title>#226 Refactor (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail725</link><guid isPermaLink="false">job/dev-language/226/changes#detail725</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/GetFeedbackInfoUseCaseImpl.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/feedback/CreateTicketUseCaseImpl.kt
</description></item><item><title>#226 Remove log-based Maestro Cloud URL discovery from `ci-run-cypress.sh`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail726</link><guid isPermaLink="false">job/dev-language/226/changes#detail726</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Update Maestro test tags and CI configuration to run work-in-progress flows. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail727</link><guid isPermaLink="false">job/dev-language/226/changes#detail727</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
ci-run-maestro.sh
</description></item><item><title>#226 Update Maestro test configuration to remove the `wip` tag and include the assignment flow in standard CI runs. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail728</link><guid isPermaLink="false">job/dev-language/226/changes#detail728</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
ci-run-maestro.sh
</description></item><item><title>#226 Add suspended UiText getUiTextString for use by view models where required. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail729</link><guid isPermaLink="false">job/dev-language/226/changes#detail729</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/SelectLang.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiTextGetString.kt
</description></item><item><title>#226 Update `ci-run-cypress.sh` to capture Cypress exit code by disabling immediate exit on error. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail730</link><guid isPermaLink="false">job/dev-language/226/changes#detail730</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Add video presence check to Maestro video URL extraction script. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail731</link><guid isPermaLink="false">job/dev-language/226/changes#detail731</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js
</description></item><item><title>#226 Update Cypress script and video extraction logic. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail732</link><guid isPermaLink="false">job/dev-language/226/changes#detail732</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js
.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Fix indentation and remove redundant closing brace in `extract-maestro-video-urls.cy.js`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail733</link><guid isPermaLink="false">job/dev-language/226/changes#detail733</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js
</description></item><item><title>#226 Add `e2e` tags to Maestro flows and update the CI script to filter by these tags. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail734</link><guid isPermaLink="false">job/dev-language/226/changes#detail734</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/001_003_login_using_school_link_test.yaml
ci-run-maestro.sh
</description></item><item><title>#226 Update CI script and project metadata for video downloader, and fix indentation in extraction test. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail735</link><guid isPermaLink="false">job/dev-language/226/changes#detail735</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/package-lock.json
.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js
.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Add ISC license to video-downloader package-lock.json. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail736</link><guid isPermaLink="false">job/dev-language/226/changes#detail736</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/package-lock.json
</description></item><item><title>#226 Comment out E2E tags in admin user assignment Maestro flow. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail737</link><guid isPermaLink="false">job/dev-language/226/changes#detail737</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Ignore Cypress test failure exit code in CI script to allow subsequent video download steps. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail738</link><guid isPermaLink="false">job/dev-language/226/changes#detail738</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Update Maestro CI scripts and login flow test. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail739</link><guid isPermaLink="false">job/dev-language/226/changes#detail739</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
ci-run-maestro.sh
.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Update Maestro E2E test flows and CI configuration. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail740</link><guid isPermaLink="false">job/dev-language/226/changes#detail740</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
ci-run-maestro.sh
</description></item><item><title>#226 Update `ci-run-maestro.sh` to append a unique timestamp to Maestro Cloud run names. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail741</link><guid isPermaLink="false">job/dev-language/226/changes#detail741</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Refactor `ci-run-maestro.sh` to remove the fallback name argument for Maestro cloud runs. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail742</link><guid isPermaLink="false">job/dev-language/226/changes#detail742</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Simplify Maestro CI run naming by removing unique timestamp suffixes from the `BUILD_TAG`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail743</link><guid isPermaLink="false">job/dev-language/226/changes#detail743</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Add documentation on connections between open standards used. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail744</link><guid isPermaLink="false">job/dev-language/226/changes#detail744</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_XAPI_OPDS.md
respect-lib-xapi-core/README_EXTENSION_PUBLICATION.md
respect-lib-opds-model/README_LAUNCHABLE_APP.md
</description></item><item><title>#226 Add documentation on connections between open standards used. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail745</link><guid isPermaLink="false">job/dev-language/226/changes#detail745</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_XAPI_OPDS.md
</description></item><item><title>#226 Refactor playlist list to use `ExpandableFabUiState` for creation options. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail746</link><guid isPermaLink="false">job/dev-language/226/changes#detail746</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ExpandableFabUiState.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/ExpandableFab.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt
</description></item><item><title>#226 Refactor GetActiveUsernameUseCase (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail747</link><guid isPermaLink="false">job/dev-language/226/changes#detail747</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/GetActiveUsernameUseCase.kt
</description></item><item><title>#226 Fix EnterLinkViewModel and removed the constants. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail748</link><guid isPermaLink="false">job/dev-language/226/changes#detail748</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/CreatePlaylistShareLinkUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt
</description></item><item><title>#226 Remove `006_002_user_send_feedback_test.yaml` and replace it with a refactored `006_user_send_feedback_test.yaml` Maestro flow. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail749</link><guid isPermaLink="false">job/dev-language/226/changes#detail749</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/006_user_send_feedback_test.yaml
.maestro/flows/006_002_user_send_feedback_test.yaml
</description></item><item><title>#226 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. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail750</link><guid isPermaLink="false">job/dev-language/226/changes#detail750</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/006_user_send_feedback_test.yaml
</description></item><item><title>#226 fix (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail751</link><guid isPermaLink="false">job/dev-language/226/changes#detail751</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
</description></item><item><title>#226 changes in `.maestro/video-downloader/ci-run-cypress.sh` and `.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail752</link><guid isPermaLink="false">job/dev-language/226/changes#detail752</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js
.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Summarize the changes in `.maestro/video-downloader/ci-run-cypress.sh` and `.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail753</link><guid isPermaLink="false">job/dev-language/226/changes#detail753</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js
.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Delete `.maestro/flows/scripts/verifyZammadTicket.js` and its associated logic for validating Zammad environment variables and verifying support ticket creation via the API. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail754</link><guid isPermaLink="false">job/dev-language/226/changes#detail754</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/scripts/verifyZammadTicket.js
</description></item><item><title>#226 Improve the robustness and reliability of the Maestro video downloader script and Cypress extraction logic. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail755</link><guid isPermaLink="false">job/dev-language/226/changes#detail755</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js
.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Add `test` tag to Maestro flows and update `ci-run-maestro.sh` to exclude them from CI runs. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail756</link><guid isPermaLink="false">job/dev-language/226/changes#detail756</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
</description></item><item><title>#226 Add a logging task to the Cypress configuration for the video downloader. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail757</link><guid isPermaLink="false">job/dev-language/226/changes#detail757</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/cypress.config.js
</description></item><item><title>#226 Remove GetActiveUsernameUseCase (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail758</link><guid isPermaLink="false">job/dev-language/226/changes#detail758</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/GetActiveUsernameUseCase.kt
</description></item><item><title>#226 Remove `test` tags from Maestro flows and update CI script to include all tests. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail759</link><guid isPermaLink="false">job/dev-language/226/changes#detail759</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
</description></item><item><title>#226 Add documentation on adding a new app. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail760</link><guid isPermaLink="false">job/dev-language/226/changes#detail760</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>README_XAPI.md
README_ADD_YOUR_APP.md
respect-lib-opds-model/README_LAUNCHABLE_APP.md
</description></item><item><title>#226 Refactor learning-unit selection handling in `PlaylistEditViewModel` and add documentation for result types. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail761</link><guid isPermaLink="false">job/dev-language/226/changes#detail761</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
</description></item><item><title>#226 Clarify terms used in the add your app readme and make terminology consistent. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail762</link><guid isPermaLink="false">job/dev-language/226/changes#detail762</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>README_ADD_YOUR_APP.md
</description></item><item><title>#226 Update `cypress` version to 15.18.1 and clean up comments in the CI script. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail763</link><guid isPermaLink="false">job/dev-language/226/changes#detail763</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/package.json
.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Add debug logging for Node.js, npm, and environment path in `ci-run-cypress.sh`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail764</link><guid isPermaLink="false">job/dev-language/226/changes#detail764</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Update `ci-run-cypress.sh` to use Node.js version 20.20.2 via NVM. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail765</link><guid isPermaLink="false">job/dev-language/226/changes#detail765</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Remove Node version management commands from the Cypress CI script. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail766</link><guid isPermaLink="false">job/dev-language/226/changes#detail766</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Configure Node.js version 20.20.2 using NVM in the Cypress CI script. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail767</link><guid isPermaLink="false">job/dev-language/226/changes#detail767</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/ci-run-cypress.sh
</description></item><item><title>#226 Update `extract-maestro-video-urls.cy.js` to include a pause during OTP polling and improve code comments. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail768</link><guid isPermaLink="false">job/dev-language/226/changes#detail768</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/video-downloader/cypress/e2e/extract-maestro-video-urls.cy.js
</description></item><item><title>#226 rename from mapping to collections (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail769</link><guid isPermaLink="false">job/dev-language/226/changes#detail769</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/list/PlaylistListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/edit/PlaylistEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/share/PlaylistShareScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/edit/PlaylistEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/externallink/ExternalLinkEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/share/PlaylistShareScreen.kt
.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/share/PlaylistShareViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/edit/PlaylistEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/edit/PlaylistEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/list/PlaylistListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/share/PlaylistShareViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/mapping/list/PlaylistListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/mapping/externallink/ExternalLinkEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/externallink/ExternalLinkEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt
</description></item><item><title>#226 Update instructions on adding an app to the default catalog. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail770</link><guid isPermaLink="false">job/dev-language/226/changes#detail770</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD
</description></item><item><title>#226 Updates for improved local on-prem testing (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail771</link><guid isPermaLink="false">job/dev-language/226/changes#detail771</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/scripts/school_init.js
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/subflows/teardown.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
respect-lib-opds-model/build.gradle.kts
gradle.properties
.maestro/README.md
.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/flows/scripts/teardown.js
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
ci-run-maestro.sh
README_ADD_YOUR_APP.md
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCaseClient.kt
</description></item><item><title>#226 Maestro device offline reproduction with additional logging. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail772</link><guid isPermaLink="false">job/dev-language/226/changes#detail772</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
.maestro/flows/002_browse_lessons_test.yaml
respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
ci-run-maestro.sh
respect-lib-xapi-nanohttpd/build.gradle.kts
</description></item><item><title>#226 Update Maestro browse lessons test to tap on "Home" instead of "Apps". (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail773</link><guid isPermaLink="false">job/dev-language/226/changes#detail773</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
</description></item><item><title>#226 update learning unit detail screen initial commit (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail774</link><guid isPermaLink="false">job/dev-language/226/changes#detail774</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/launchable-app.json
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/GetLicenseLabelUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt
</description></item><item><title>#226 Add highlight card functionality and related links in AppsDetailScreen (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail775</link><guid isPermaLink="false">job/dev-language/226/changes#detail775</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt
</description></item><item><title>#226 Remove extra character in wrong place in ci-run-maestro.sh script. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail776</link><guid isPermaLink="false">job/dev-language/226/changes#detail776</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#226 Update version of TestServerController. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail777</link><guid isPermaLink="false">job/dev-language/226/changes#detail777</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/Application.kt
ci-run-maestro.sh
ci-run-test-server.sh
respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt
</description></item><item><title>#226 Rename ci-run-maestro script to ci-run-e2e-tests.sh (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail778</link><guid isPermaLink="false">job/dev-language/226/changes#detail778</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/README.md
ci-run-maestro.sh
ci-run-test-server.sh
ci-run-e2e-tests.sh
</description></item><item><title>#226 Update SendDbToServerScreen and e2e_artifact_upload to avoid artifact upload failure when no db created yet blocking server shutdown. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail779</link><guid isPermaLink="false">job/dev-language/226/changes#detail779</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/e2e_artifact_upload.yaml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt
</description></item><item><title>#226 Fix Application.kt to create required data directory (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail780</link><guid isPermaLink="false">job/dev-language/226/changes#detail780</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/Application.kt
</description></item><item><title>#226 Update login to use auto-retry and show appropriate error messages. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail781</link><guid isPermaLink="false">job/dev-language/226/changes#detail781</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCaseClient.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/exception/ExceptionWithUiText.kt
respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/throwable/ExceptionWithHttpStatusCode.kt
</description></item><item><title>#226 Update PersonListViewModel: don't load from datasource when not needed on clicking an item in the list in browse mode. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail782</link><guid isPermaLink="false">job/dev-language/226/changes#detail782</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/LogTags.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt
</description></item><item><title>#226 Removed unused Constants.kt (from Android Studio project template). (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail783</link><guid isPermaLink="false">job/dev-language/226/changes#detail783</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/Constants.kt
</description></item><item><title>#226 Fix Opds Subject storage to/from database. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail784</link><guid isPermaLink="false">job/dev-language/226/changes#detail784</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumSubjectEntityDao.kt
respect-lib-opds-model/src/jvmTest/resources/lesson001.json
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/db/opds/adapters/lesson001.json
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumSubjectEntityAdapters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/TestOpdsStorage.kt
respect-lib-opds-model/src/jvmTest/kotlin/world/respect/lib/opds/model/OpdsSerializerTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.kt
</description></item><item><title>#226 Add RespectDataLoadHost component. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail785</link><guid isPermaLink="false">job/dev-language/226/changes#detail785</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDataLoadHost.kt
</description></item><item><title>#226 Update RespectDataLoadHost and DataLoadExtension functions to handle not found scenarios. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail786</link><guid isPermaLink="false">job/dev-language/226/changes#detail786</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDataLoadHost.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt
</description></item><item><title>#226 Minor adjustments to learning unit detail screen. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail787</link><guid isPermaLink="false">job/dev-language/226/changes#detail787</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
</description></item><item><title>#226 ADd demo app route. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail788</link><guid isPermaLink="false">job/dev-language/226/changes#detail788</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt
</description></item><item><title>#226 Set icon on demo app (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail789</link><guid isPermaLink="false">job/dev-language/226/changes#detail789</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt
respect-server/src/main/resources/demoapp/app_icon.png
</description></item><item><title>#226 Add demo launchable app to respect-server. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail790</link><guid isPermaLink="false">job/dev-language/226/changes#detail790</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.kt
respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt
</description></item><item><title>#226 Added Highlight card, Google play nad license label functionality and update AppsDetailScreen (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail791</link><guid isPermaLink="false">job/dev-language/226/changes#detail791</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
respect-server/src/main/resources/http/respect-ds/case_valid/default-catalog.json
respect-app-compose/src/androidMain/res/raw/license_label_json
respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt
respect-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/composeResources/drawable/ic_google_play_badge.png
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/LicenseLabelEntry.kt
respect-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCase.kt
</description></item><item><title>#226 Add icons for collections in demo app. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail792</link><guid isPermaLink="false">job/dev-language/226/changes#detail792</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.kt
respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-server/src/main/resources/demoapp/credits.txt
respect-server/src/main/resources/demoapp/grade.jpg
respect-server/src/main/resources/demoapp/books.png
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt
</description></item><item><title>#226 Added Highlight card, Google play nad license label functionality and update AppsDetailScreen (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail793</link><guid isPermaLink="false">job/dev-language/226/changes#detail793</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
</description></item><item><title>#226 Pre-modularization. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail794</link><guid isPermaLink="false">job/dev-language/226/changes#detail794</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>gradle/libs.versions.toml
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXml.kt
respect-lib-xapi-core/src/jvmTest/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXmlTest.kt
</description></item><item><title>#226 update lesson detail screen with license and subject tag (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail795</link><guid isPermaLink="false">job/dev-language/226/changes#detail795</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/icon.png
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/index.json
</description></item><item><title>#226 Update license label in AppsDetailScreen and modify string resource for clarity (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail796</link><guid isPermaLink="false">job/dev-language/226/changes#detail796</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
</description></item><item><title>#226 merge dev-learning-unit branch to update-learning-unit-detail-screen to use getLicenseLabelUseCase (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail797</link><guid isPermaLink="false">job/dev-language/226/changes#detail797</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/GetLicenseLabelUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail798</link><guid isPermaLink="false">job/dev-language/226/changes#detail798</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
</description></item><item><title>#226 Enhance AppsDetailScreen with app description and update license button text for clarity (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail799</link><guid isPermaLink="false">job/dev-language/226/changes#detail799</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
</description></item><item><title>#226 Refactor LearningUnitDetail Screen (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail800</link><guid isPermaLink="false">job/dev-language/226/changes#detail800</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
</description></item><item><title>#226 Update to AGP9 and Kotlin 2.4.10 (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail801</link><guid isPermaLink="false">job/dev-language/226/changes#detail801</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-test-resources/build.gradle.kts
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-lib-primarykeygen/build.gradle.kts
app-android/build.gradle.kts
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseDatabaseImpl.kt
respect-lib-ihttp-core/build.gradle.kts
respect-lib-ihttp-okhttp/build.gradle.kts
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectImageSelectButton.kt
respect-datalayer-http/build.gradle.kts
respect-lib-xapi-ipc-client/build.gradle.kts
gradle/libs.versions.toml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt
respect-lib-util/build.gradle.kts
respect-lib-dataloadstate/build.gradle.kts
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt
app-android/src/main/AndroidManifest.xml
respect-lib-xapi-ipc-server/build.gradle.kts
respect-lib-xxhash/build.gradle.kts
respect-lib-ihttp-iostreams/build.gradle.kts
respect-lib-xapi-core/build.gradle.kts
respect-app-compose/src/androidMain/AndroidManifest.xml
respect-credentials/build.gradle.kts
respect-lib-xapi-ipc-shared/build.gradle.kts
respect-datalayer-db/build.gradle.kts
respect-lib-serializers/build.gradle.kts
respect-app-compose/proguard-rules.pro
app-android/proguard-rules.pro
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/app/components/RespectImageSelectButton.android.kt
respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt
app-android/src/main/kotlin/world/respect/RespectApp.kt
respect-app-compose/src/androidMain/kotlin/world/respect/images/RespectImage.android.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt
respect-lib-test/build.gradle.kts
respect-lib-cache/build.gradle.kts
respect-app-compose/src/androidMain/kotlin/world/respect/app/app/AppIcon.android.kt
respect-server/build.gradle.kts
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt
respect-lib-shared/build.gradle.kts
gradle/wrapper/gradle-wrapper.properties
respect-datalayer/build.gradle.kts
respect-lib-ihttp-nanohttpd/build.gradle.kts
app-android/src/main/kotlin/world/respect/AbstractAppActivity.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppActivity.kt
respect-app-compose/build.gradle.kts
respect-datalayer-repository/build.gradle.kts
respect-app-compose/src/androidMain/kotlin/world/respect/AbstractAppActivity.kt
app-android/src/main/kotlin/world/respect/MainActivity.kt
settings.gradle.kts
respect-app-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt
respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt
respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt
respect-lib-opds-model/build.gradle.kts
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt
gradle.properties
respect-lib-shared-se/build.gradle.kts
respect-app-compose/src/androidMain/kotlin/world/respect/MainActivity.kt
respect-lib-xapi-nanohttpd/build.gradle.kts
</description></item><item><title>#226 Refactor AppsDetailScreen and ViewModel for improved clarity and functionality; update app titles and string resources (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail802</link><guid isPermaLink="false">job/dev-language/226/changes#detail802</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-server/src/main/resources/http/respect-ds/case_valid/default-catalog.json
respect-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
</description></item><item><title>#226 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. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail803</link><guid isPermaLink="false">job/dev-language/226/changes#detail803</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/002_002_browse_demo_app_test.yaml
.maestro/flows/002_001_browse_lessons_test.yaml
</description></item><item><title>#226 Update `.gitignore` to ignore the `.maestro/flows/.maestro/screenshots` directory. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail804</link><guid isPermaLink="false">job/dev-language/226/changes#detail804</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.gitignore
</description></item><item><title>#226 Update e2e testing script and doc to use new APK location. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail805</link><guid isPermaLink="false">job/dev-language/226/changes#detail805</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/README.md
app-android/src/main/AndroidManifest.xml
ci-run-e2e-tests.sh
</description></item><item><title>#226 Remove "app name" visible assertion. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail806</link><guid isPermaLink="false">job/dev-language/226/changes#detail806</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectImageSelectButton.kt
gradle.properties
</description></item><item><title>#226 refactor (anugraha)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail807</link><guid isPermaLink="false">job/dev-language/226/changes#detail807</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
respect-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json
</description></item><item><title>#226 Update assertion and tap action text from "Add App" to "Add to school apps" in `002_001_browse_lessons_test.yaml`. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail808</link><guid isPermaLink="false">job/dev-language/226/changes#detail808</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_browse_lessons_test.yaml
</description></item><item><title>#226 Update `admin_add_app.yaml` subflow to tap on "Add to school apps" instead of "Add App". (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail809</link><guid isPermaLink="false">job/dev-language/226/changes#detail809</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/admin_add_app.yaml
</description></item><item><title>#226 Merge app and learning unit detail updates. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail810</link><guid isPermaLink="false">job/dev-language/226/changes#detail810</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
</description></item><item><title>#226 Tidyup share feedback. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail811</link><guid isPermaLink="false">job/dev-language/226/changes#detail811</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/openexternallink/OpenExternalLinkUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/OpenExternalLinkUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCaseAndroid.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/WhatsAppLauncherUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/WebLauncherUseCase.kt
</description></item><item><title>#226 Fix 002-002 browse to remove extra space that causes maestro test to fail. Remove assertion that relies on content of an external site. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail812</link><guid isPermaLink="false">job/dev-language/226/changes#detail812</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_002_browse_demo_app_test.yaml
</description></item><item><title>#226 Fix 002_002 remove incorrect assert visible and fix expected license info. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail813</link><guid isPermaLink="false">job/dev-language/226/changes#detail813</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_002_browse_demo_app_test.yaml
</description></item><item><title>#226 Fix feedback maestro flow (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail814</link><guid isPermaLink="false">job/dev-language/226/changes#detail814</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/006_user_send_feedback_test.yaml
</description></item><item><title>#226 Update README.md (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail815</link><guid isPermaLink="false">job/dev-language/226/changes#detail815</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>README.md
</description></item><item><title>#226 Dev bookmark xapi (#272) (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail816</link><guid isPermaLink="false">job/dev-language/226/changes#detail816</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/6.json
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
.maestro/flows/002_001_browse_lessons_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt
.maestro/flows/002_002_browse_demo_app_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CommonSortOptions.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/5.json
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
respect-lib-shared/src/commonMain/composeResources/drawable/no_bookmark.xml
respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/AddBookmarkUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/RemoveBookmarkUseCase.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
.maestro/flows/001_003_login_using_school_link_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/Snack.kt
.maestro/flows/subflows/admin_add_app.yaml
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt
respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/PublicationListItem.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt
</description></item><item><title>#226 Improve Maestro test stability (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail817</link><guid isPermaLink="false">job/dev-language/226/changes#detail817</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/admin_add_new_student_to_class.yaml
.maestro/flows/subflows/admin_add_student.yaml
.maestro/flows/subflows/add_person_create_account.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows/002_001_browse_lessons_test.yaml
.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Add XmlUtil and TinCanXmlDocument for deserialization. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail818</link><guid isPermaLink="false">job/dev-language/226/changes#detail818</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/jvmTest/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXmlDocumentTest.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/rusticilaunch/model/TinCanXmlDocument.kt
respect-lib-xapi-core/src/jvmTest/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXmlTest.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXml.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt
respect-lib-xapi-core/build.gradle.kts
</description></item><item><title>#226 Update PinPublicationPrepareUseCase to include the manifest itself and images. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail819</link><guid isPermaLink="false">job/dev-language/226/changes#detail819</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt
</description></item><item><title>#226 Improve logging for UstadCacheInterceptor and ConnectivityMonitorAndroid.kt (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail820</link><guid isPermaLink="false">job/dev-language/226/changes#detail820</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt
</description></item><item><title>#226 Add logging on UstadCacheInterceptor even when not applying further processing. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail821</link><guid isPermaLink="false">job/dev-language/226/changes#detail821</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt
</description></item><item><title>#226 Update UstadCache to use a Channel to batch and execute database updates instead of an interval. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail822</link><guid isPermaLink="false">job/dev-language/226/changes#detail822</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/README.md
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt
ci-run-e2e-tests.sh
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ChannelExt.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
</description></item><item><title>#226 Improvements to reduce potential flakiness in Login and improve authentication logging. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail823</link><guid isPermaLink="false">job/dev-language/226/changes#detail823</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCase.kt
respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt
</description></item><item><title>#226 Dependency version updates. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail824</link><guid isPermaLink="false">job/dev-language/226/changes#detail824</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/src/main/AndroidManifest.xml
respect-lib-ihttp-iostreams/build.gradle.kts
respect-lib-ihttp-core/build.gradle.kts
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt
gradle/wrapper/gradle-wrapper.properties
gradle/libs.versions.toml
gradle.properties
</description></item><item><title>#226 Start adding support to output the demo launchable app to static files. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail825</link><guid isPermaLink="false">job/dev-language/226/changes#detail825</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt
respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt
.fleet/receipt.json
</description></item><item><title>#226 Initial usage of TinCan.xml in GetXapiLaunchUrlUseCaseAndroid.kt (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail826</link><guid isPermaLink="false">job/dev-language/226/changes#detail826</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt
</description></item><item><title>#226 Work in progress: add support to write demo app as static files. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail827</link><guid isPermaLink="false">job/dev-language/226/changes#detail827</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt
respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt
</description></item><item><title>#226 Write demo app lesson manifest as file or use in Ktor route. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail828</link><guid isPermaLink="false">job/dev-language/226/changes#detail828</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.kt
respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonManifestUseCase.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt
</description></item><item><title>#226 Add tincan.xml to demo app output on Ktor server route and static files output. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail829</link><guid isPermaLink="false">job/dev-language/226/changes#detail829</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonTinCanXmlUseCase.kt
</description></item><item><title>#226 Initial implementation of demo app lesson html to send an xAPI statement (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail830</link><guid isPermaLink="false">job/dev-language/226/changes#detail830</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonHtmlUseCase.kt
respect-server/src/main/resources/demoapp/lesson_xapi.js
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonTinCanXmlUseCase.kt
respect-server/src/main/resources/demoapp/xapi_module.js
</description></item><item><title>#226 Update demo app HTML/JS version to mirror the native Android version. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail831</link><guid isPermaLink="false">job/dev-language/226/changes#detail831</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonHtmlUseCase.kt
respect-server/src/main/resources/demoapp/lesson_xapi.js
</description></item><item><title>#226 Update save demo app to files to include lesson HTML and Javascript. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail832</link><guid isPermaLink="false">job/dev-language/226/changes#detail832</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonHtmlUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonManifestUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt
</description></item><item><title>#226 Update demo naming to follow terminology. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail833</link><guid isPermaLink="false">job/dev-language/226/changes#detail833</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLessonRoute.kt
respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-server/src/main/resources/demoapp/lesson_xapi.js
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonManifestUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonTinCanXmlUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLessonHtmlUseCase.kt
respect-server/src/main/resources/demoapp/learning_unit_xapi.js
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt
</description></item><item><title>#226 Fix demo app links. Bump version. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail834</link><guid isPermaLink="false">job/dev-language/226/changes#detail834</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-lib-cache/build.gradle.kts
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt
gradle.properties
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt
</description></item><item><title>#226 Add `GEOLOCATION_API_ENDPOINT` build config field and update `GetCountryForUrlUseCaseImpl` to use the injected endpoint and new API path. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail835</link><guid isPermaLink="false">job/dev-language/226/changes#detail835</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/build.gradle.kts
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt
</description></item><item><title>#226 Fix potential for flakiness in UstadCacheJvmTest where update had not yet been committed to the database. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail836</link><guid isPermaLink="false">job/dev-language/226/changes#detail836</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ChannelExt.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt
</description></item><item><title>#226 Add tincan.xml for exampels/lesson 001 (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail837</link><guid isPermaLink="false">job/dev-language/226/changes#detail837</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/tincan.xml
</description></item><item><title>#226 fix (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail838</link><guid isPermaLink="false">job/dev-language/226/changes#detail838</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CountryFlag.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt
app-android/build.gradle.kts
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt
</description></item><item><title>#226 Add index.html for demo app. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail839</link><guid isPermaLink="false">job/dev-language/226/changes#detail839</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/demoapp/index.html
respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt
</description></item><item><title>#226 Make terminology consistent: use collection instead of catalog. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail840</link><guid isPermaLink="false">job/dev-language/226/changes#detail840</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-opds-model/README_LAUNCHABLE_APP.md
README_ADD_YOUR_APP.md
</description></item><item><title>#226 Make learning unit consistent with demo.openeel.org. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail841</link><guid isPermaLink="false">job/dev-language/226/changes#detail841</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>README_ADD_YOUR_APP.md
</description></item><item><title>#226 Add retry logic to SchoolDirectoryEntryDataSourceHttp.kt (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail842</link><guid isPermaLink="false">job/dev-language/226/changes#detail842</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt
</description></item><item><title>#226 Add text component that can be monitored in Maestro tests to wait for all pending remote writes to be completed. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail843</link><guid isPermaLink="false">job/dev-language/226/changes#detail843</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/RemoteWriteQueue.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/WriteQueueItemEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/writequeue/RemoteWriteQueueDbImpl.kt
</description></item><item><title>#226 Update UstadCacheImpl.kt and test to improve handling closing the database/cache (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail844</link><guid isPermaLink="false">job/dev-language/226/changes#detail844</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt
</description></item><item><title>#226 Make maestro tests wait for all pending remote writs to complete. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail845</link><guid isPermaLink="false">job/dev-language/226/changes#detail845</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/teardown.yaml
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt
</description></item><item><title>#226 Reduce use of cache database closing due to apparent bug in Room Sqlite bundled driver. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail846</link><guid isPermaLink="false">job/dev-language/226/changes#detail846</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt
</description></item><item><title>#226 Bump version (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail847</link><guid isPermaLink="false">job/dev-language/226/changes#detail847</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>gradle.properties
</description></item><item><title>#226 Bump version (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail848</link><guid isPermaLink="false">job/dev-language/226/changes#detail848</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>gradle.properties
</description></item><item><title>#226 moved the command to Wait for all pending remote writes from teardown to e2e_artifact_upload.yaml (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail849</link><guid isPermaLink="false">job/dev-language/226/changes#detail849</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/e2e_artifact_upload.yaml
.maestro/flows/subflows/teardown.yaml
</description></item><item><title>#226 Waiting for pending remote writes to complete is done after setting the device back to online. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail850</link><guid isPermaLink="false">job/dev-language/226/changes#detail850</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/e2e_artifact_upload.yaml
</description></item><item><title>#226 Update to use activity id as per tincan.xml when addinga learning unit to an assignment. Bump version. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail851</link><guid isPermaLink="false">job/dev-language/226/changes#detail851</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt
gradle.properties
</description></item><item><title>#226 Remove concurrency issue: update cache commit backlog size only after db transaction has finished. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail852</link><guid isPermaLink="false">job/dev-language/226/changes#detail852</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ChannelExt.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
</description></item><item><title>#226 fix (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail853</link><guid isPermaLink="false">job/dev-language/226/changes#detail853</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CountryFlag.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt
</description></item><item><title>#226 GeoIp lookup tidyup (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail854</link><guid isPermaLink="false">job/dev-language/226/changes#detail854</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCase.kt
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryCodeToFlagEmoji.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryDetection.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RememberCountryFlagEmoji.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt
app-android/build.gradle.kts
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCaseImpl.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/CountryFlag.kt
respect-lib-shared/build.gradle.kts
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/country/GetCountryForUrlUseCaseImpl.kt
</description></item><item><title>#226 Resolved the comments and move PlaylistDetail into its own files (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail855</link><guid isPermaLink="false">job/dev-language/226/changes#detail855</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/edit/PlaylistEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/list/PlaylistListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/share/PlaylistShareScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/edit/PlaylistEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/detail/PlaylistDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/detail/PlaylistDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/externallink/ExternalLinkEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt
</description></item><item><title>#226 Resolved the comments and move PlaylistDetail into its own files (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail856</link><guid isPermaLink="false">job/dev-language/226/changes#detail856</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt
</description></item><item><title>#226 fix (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail857</link><guid isPermaLink="false">job/dev-language/226/changes#detail857</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/edit/PlaylistEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/detail/PlaylistDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/detail/PlaylistDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
</description></item><item><title>#226 Add XAPI SQL Query receipe readme. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail858</link><guid isPermaLink="false">job/dev-language/226/changes#detail858</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_XAPI_SQL_QUERY.md
respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md
</description></item><item><title>#226 refactor: extract web page metadata from Open Graph tags instead of using a WebView (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail859</link><guid isPermaLink="false">job/dev-language/226/changes#detail859</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/externallink/ExtractWebPageMetadataUseCaseAndroid.kt
respect-lib-shared/build.gradle.kts
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.kt
</description></item><item><title>#226 Added bookmark and playlist to one test (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail860</link><guid isPermaLink="false">job/dev-language/226/changes#detail860</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
.maestro/flows/002_001_browse_lessons_test.yaml
.maestro/flows/002_user_add_apps_playlists_bookmarks_test.yaml
</description></item><item><title>#226 Added tags to test only the failed tests (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail861</link><guid isPermaLink="false">job/dev-language/226/changes#detail861</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
ci-run-e2e-tests.sh
</description></item><item><title>#226 Updated the Classes locator to its  id: "nav_classes" (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail862</link><guid isPermaLink="false">job/dev-language/226/changes#detail862</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/admin_add_class_with_members.yaml
.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml
.maestro/flows/subflows/admin_add_class.yaml
.maestro/flows/subflows/admin_add_new_student_to_class.yaml
.maestro/flows/subflows/admin_add_student.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
</description></item><item><title>#226 Fix (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail863</link><guid isPermaLink="false">job/dev-language/226/changes#detail863</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
</description></item><item><title>#226 added tag (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail864</link><guid isPermaLink="false">job/dev-language/226/changes#detail864</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
</description></item><item><title>#226 updated test (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail865</link><guid isPermaLink="false">job/dev-language/226/changes#detail865</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
</description></item><item><title>#226 updated test id (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail866</link><guid isPermaLink="false">job/dev-language/226/changes#detail866</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
</description></item><item><title>#226 updated title comments (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail867</link><guid isPermaLink="false">job/dev-language/226/changes#detail867</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
</description></item><item><title>#226 remove the id from test file (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail868</link><guid isPermaLink="false">job/dev-language/226/changes#detail868</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
</description></item><item><title>#226 Fix 002_001 test file (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail869</link><guid isPermaLink="false">job/dev-language/226/changes#detail869</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
</description></item><item><title>#226 Revert (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail870</link><guid isPermaLink="false">job/dev-language/226/changes#detail870</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
</description></item><item><title>#226 Updated app name (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail871</link><guid isPermaLink="false">job/dev-language/226/changes#detail871</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
</description></item><item><title>#226 Fix the flow (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail872</link><guid isPermaLink="false">job/dev-language/226/changes#detail872</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/edit/PlaylistEditViewModel.kt
.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
</description></item><item><title>#226 Fix cache db migration (migration referenced old field name). (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail873</link><guid isPermaLink="false">job/dev-language/226/changes#detail873</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt
gradle.properties
</description></item><item><title>#226 added hidekeyboard when Task is hidden by keyboard (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail874</link><guid isPermaLink="false">job/dev-language/226/changes#detail874</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
</description></item><item><title>#226 updated home (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail875</link><guid isPermaLink="false">job/dev-language/226/changes#detail875</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
</description></item><item><title>#226 Clean up (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail876</link><guid isPermaLink="false">job/dev-language/226/changes#detail876</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
ci-run-e2e-tests.sh
</description></item><item><title>#226 Share flow updated (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail877</link><guid isPermaLink="false">job/dev-language/226/changes#detail877</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
</description></item><item><title>#226 Remove unnecessary FeedActionButton that was really just a duplicate of RespectQuickActionButton (went against DRY principle). (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail878</link><guid isPermaLink="false">job/dev-language/226/changes#detail878</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
</description></item><item><title>#226 Tidyup work in progress: (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail879</link><guid isPermaLink="false">job/dev-language/226/changes#detail879</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/edit/PlaylistEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListHeader.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt
</description></item><item><title>#226 More tidy up of learning unit list : fix selection if icons, and fix display of header icon and description. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail880</link><guid isPermaLink="false">job/dev-language/226/changes#detail880</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListHeader.kt
</description></item><item><title>#226 Hide assign button when there are no assignable publications. Padding fixes. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail881</link><guid isPermaLink="false">job/dev-language/226/changes#detail881</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListHeader.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt
</description></item><item><title>#226 build fix (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail882</link><guid isPermaLink="false">job/dev-language/226/changes#detail882</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
</description></item><item><title>#226 Name learning unit list as per opds terminology (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail883</link><guid isPermaLink="false">job/dev-language/226/changes#detail883</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsPublicationsSelection.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/edit/PlaylistEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/PlaylistEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListHeader.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/edit/PlaylistEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/opdscatalog/detail/LearningUnitDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedHeader.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt
</description></item><item><title>#226 Tidying up opds feed detail and edit screens. Tidyup reordering logic. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail884</link><guid isPermaLink="false">job/dev-language/226/changes#detail884</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/PlaylistEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/OpdsFeedEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/edit/PlaylistEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditNavigationItemRow.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsGroupExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedGroupEditItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt
</description></item><item><title>#226 Finish splitting up OpdsFeedEdit screen into files by component. Remove passing modifier as drag handle modifier. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail885</link><guid isPermaLink="false">job/dev-language/226/changes#detail885</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditGroupMenuItemButton.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditNavigationItemRow.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditAddItemBottomSheet.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/OpdsFeedEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedGroupEditItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditPublicationItemRow.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditMoveToGroupDialog.kt
</description></item><item><title>#226 Update OpdsFeedEdit user interface to use list items instead of buttons for add section, collection link, learning item link. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail886</link><guid isPermaLink="false">job/dev-language/226/changes#detail886</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedGroupEditItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditPublicationItemRow.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditNavigationItemRow.kt
</description></item><item><title>#226 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. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail887</link><guid isPermaLink="false">job/dev-language/226/changes#detail887</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditAddItemBottomSheet.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedItemIndex.kt
respect-lib-util/src/commonMain/kotlin/world/respect/libutil/ext/SetExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt
</description></item><item><title>#226 Add helper functions for use of statement extension properties. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail888</link><guid isPermaLink="false">job/dev-language/226/changes#detail888</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt
</description></item><item><title>#226 Fixes for selecting navigation feeds from OpdsFeedEdit (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail889</link><guid isPermaLink="false">job/dev-language/226/changes#detail889</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedListItem.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/OpdsFeedEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsPickType.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsFeedSelection.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublication.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsDocument.kt
</description></item><item><title>#226 Implement support for selecting multiple feeds in OpdsFeedEdit. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail890</link><guid isPermaLink="false">job/dev-language/226/changes#detail890</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/OpdsFeedEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt
</description></item><item><title>#226 Fix making opds selections via bookmarks and collections list. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail891</link><guid isPermaLink="false">job/dev-language/226/changes#detail891</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPickTypeExt.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedHeader.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt
</description></item><item><title>#226 Refactor to make catalog related naming more consistent. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail892</link><guid isPermaLink="false">job/dev-language/226/changes#detail892</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/OpdsPickType.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditNavigationItemRow.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/OpdsFeedDetailViewModel.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/OpdsFeedExt.kt
respect-lib-opds-model/src/jvmTest/kotlin/world/respect/lib/opds/model/OpdsSerializerTest.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedGroupEditItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedListItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/opdscatalog/detail/LearningUnitDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditGroupMenuItemButton.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/publicationdetail/PublicationDetailViewModel.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PublicationExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/OpdsFeedSelection.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt
respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/ValidateOpdsPublicationUseCase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditScreen.kt
respect-cli/src/main/java/world/respect/clitools/RespectCLI.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt
respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/ValidateLinkUseCaseImpl.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedGroupEditItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/PublicationListItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditPublicationItemRow.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/publicationdetail/LearningUnitDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditMoveToGroupDialog.kt
respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/OpdsFeedValidator.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPickTypeExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/PublicationListItem.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsPublicationsSelection.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt
respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/OpdsPublicationValidator.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedListItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditPublicationItemRow.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestPublicationEntityAdapter.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsGroup.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/TestOpdsStorage.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditAddItemBottomSheet.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsPickType.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedDetailScreen.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublication.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditMoveToGroupDialog.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditAddItemBottomSheet.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/editfeed/OpdsFeedEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/feeddetail/OpdsFeedDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/feededit/OpdsFeedEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/PublicationsSelection.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedDetailHeader.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/editfeed/OpdsFeedEditNavigationItemRow.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/Publication.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/OpdsFeedSelection.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditGroupMenuItemButton.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/OpdsFeedHeader.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsGroupExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/RespectAppManifestExt.kt
</description></item><item><title>#226 Refactor to make catalog related naming more consistent. Part 2 (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail893</link><guid isPermaLink="false">job/dev-language/226/changes#detail893</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditAddItemBottomSheet.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/PublicationListItem.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/list/PlaylistListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededitaddlink/OpdsFeedEditAddLinkScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditNavigationItemRow.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededitaddlink/OpdsFeedEditAddLinkViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/bookmark/BookmarkListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededit/OpdsFeedEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedListItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedGroupEditItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditGroupMenuItemButton.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/externallink/ExternalLinkEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/bookmark/BookmarkListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/OpdsFeedDetailHeader.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedshare/OpdsFeedShareScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedlist/PlaylistListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedlist/OpdsFeedListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/share/PlaylistShareViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditNavigationItemRow.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/publicationdetail/PublicationDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/publicationdetail/LearningUnitDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/PublicationListItem.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeeddetail/OpdsFeedDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/list/PlaylistListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/OpdsFeedDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditMoveToGroupDialog.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditPublicationItemRow.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/playlists/collections/share/PlaylistShareScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/playlists/collections/externallink/ExternalLinkEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditMoveToGroupDialog.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditAddItemBottomSheet.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/feeddetail/OpdsFeedDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/feededit/OpdsFeedEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedGroupEditItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditPublicationItemRow.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feeddetail/OpdsFeedDetailHeader.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/OpdsFeedListItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/feededit/OpdsFeedEditGroupMenuItemButton.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsGroupExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedshare/OpdsFeedShareViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt
</description></item><item><title>#226 Rename PlaylistListScreen to OpdsFeedListScreen.kt (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail894</link><guid isPermaLink="false">job/dev-language/226/changes#detail894</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedlist/OpdsFeedListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedlist/PlaylistListScreen.kt
</description></item><item><title>#226 Change terminology from "playlists" to "collections". (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail895</link><guid isPermaLink="false">job/dev-language/226/changes#detail895</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedlist/OpdsFeedListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededit/OpdsFeedEditViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/OpdsFeedDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeededit/OpdsFeedEditAddGroupSelectTypeBottomSheet.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeeddetail/OpdsFeedDetailHeader.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/catalog/opdsfeedlist/OpdsFeedListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedshare/OpdsFeedShareViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt
</description></item><item><title>#226 Add model class for XapiSqlQueryResponse. Move report options into xapi module. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail896</link><guid isPermaLink="false">job/dev-language/226/changes#detail896</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/MockRunReportUseCaseClientImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportOptions.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ReportAdapter.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/Indicator.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportPeriod.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-lib-xapi-core/README_XAPI_SQL_QUERY.md
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReportExtensions.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/DefaultIndicators.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportConditionFilterOptions.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportConditionFilterOptions.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportPeriod.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/ReportSeries.kt
app-android/README.md
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/report/StatementReportRow.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Report.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/queryresponse/XapiSqlQueryResponse.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/StatementReportRow.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportSeries.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportOptions.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Indicator.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/DefaultIndicators.kt
</description></item><item><title>#226 Move message bridge into a separate module so it can be shared by both the xAPI IPC client and the cache IPC client. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail897</link><guid isPermaLink="false">job/dev-language/226/changes#detail897</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-test-resources/build.gradle.kts
lib-cache-ipc-core/build.gradle.kts
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageData.kt
lib-ipc-messagebridge/src/androidTest/java/org/openeel/lib/ipc/messagebridge/ExampleInstrumentedTest.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
respect-lib-xapi-ipc-client/build.gradle.kts
lib-cache-ipc-core/.gitignore
lib-ipc-messagebridge/src/main/keepRules/rules.keep
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt
lib-ipc-messagebridge/README.md
lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/MessageData.kt
lib-cache-ipc-core/src/main/keepRules/rules.keep
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
lib-ipc-messagebridge/consumer-rules.keep
lib-cache-ipc-core/src/main/AndroidManifest.xml
lib-cache-ipc-core/src/androidTest/java/org/openeel/libcache/ipc/core/ExampleInstrumentedTest.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcClientBuilder.kt
lib-cache-ipc-core/src/test/java/org/openeel/libcache/ipc/core/ExampleUnitTest.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/MessageExt.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcMessageBridgeServiceConnectionImpl.kt
lib-cache-ipc-core/consumer-rules.keep
respect-lib-xapi-ipc-server/build.gradle.kts
lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeTags.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeMessengerImpl.kt
respect-lib-xapi-core/build.gradle.kts
lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeWhatFlags.kt
settings.gradle.kts
lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/XapiMessageBridge.kt
lib-ipc-messagebridge/.gitignore
lib-ipc-messagebridge/build.gradle.kts
lib-ipc-messagebridge/src/main/AndroidManifest.xml
lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ext/MessageExt.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcWhatFlags.kt
lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeServiceConnectionImpl.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
lib-ipc-messagebridge/src/test/java/org/openeel/lib/ipc/messagebridge/ExampleUnitTest.kt
lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/XapiMessageBridgeMessengerImpl.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridge.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt
</description></item><item><title>#226 Rename playlists to collections in Maestro test flows (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail898</link><guid isPermaLink="false">job/dev-language/226/changes#detail898</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
</description></item><item><title>#226 Initial implementation of converting an OKHttp Request to/from a bundle. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail899</link><guid isPermaLink="false">job/dev-language/226/changes#detail899</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-cache-ipc-shared/src/main/keepRules/rules.keep
lib-cache-ipc-core/consumer-rules.keep
lib-cache-ipc-core/build.gradle.kts
lib-cache-ipc-shared/build.gradle.kts
settings.gradle.kts
lib-cache-ipc-shared/consumer-rules.keep
lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt
gradle/libs.versions.toml
lib-cache-ipc-core/.gitignore
lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt
lib-cache-ipc-core/src/main/keepRules/rules.keep
lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HeadersAdapter.kt
lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ExampleInstrumentedTest.kt
lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/HeadersAdapterUnitTest.kt
lib-cache-ipc-core/src/main/AndroidManifest.xml
lib-cache-ipc-core/src/test/java/org/openeel/libcache/ipc/core/ExampleUnitTest.kt
lib-cache-ipc-core/src/androidTest/java/org/openeel/libcache/ipc/core/ExampleInstrumentedTest.kt
lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt
lib-cache-ipc-shared/src/main/AndroidManifest.xml
lib-cache-ipc-shared/.gitignore
</description></item><item><title>#226 Initial implementation of adapter to handle converting Response to/from Android Bundle (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail900</link><guid isPermaLink="false">job/dev-language/226/changes#detail900</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt
lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt
lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/ResponseAdapterUnitTest.kt
lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt
respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/IHttpResponseOkHttpAdapter.kt
</description></item><item><title>#226 Update Maestro test flow to reflect collection copy-to-remix terminology changes (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail901</link><guid isPermaLink="false">job/dev-language/226/changes#detail901</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
</description></item><item><title>#226 Initial implementation of IpcHttpClient with a very basic hello world test to make a real http call over IPC. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail902</link><guid isPermaLink="false">job/dev-language/226/changes#detail902</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ServiceConnectionMessengerProvider.kt
lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt
lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/InstrumentationTestRunner.kt
lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
lib-cache-ipc-client/src/main/AndroidManifest.xml
lib-cache-ipc-client/.gitignore
lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/OkHttpClientProvider.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt
lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeMessengerImpl.kt
lib-cache-ipc-server/src/main/keepRules/rules.keep
lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt
lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ExampleInstrumentedTest.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/ResponseAdapterUnitTest.kt
lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt
lib-cache-ipc-server/src/main/AndroidManifest.xml
lib-cache-ipc-server/build.gradle.kts
lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/MessengerProvider.kt
lib-cache-ipc-shared/build.gradle.kts
lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt
lib-cache-ipc-server/src/androidTest/AndroidManifest.xml
settings.gradle.kts
lib-cache-ipc-client/consumer-rules.keep
lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/XapiMessageBridge.kt
lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt
lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt
lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridge.kt
lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt
lib-cache-ipc-client/src/main/keepRules/rules.keep
lib-cache-ipc-server/.gitignore
lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcIntent.kt
lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/IpcMessageBridgeServiceConnectionImpl.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
lib-cache-ipc-server/consumer-rules.keep
lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/XapiMessageBridgeMessengerImpl.kt
lib-cache-ipc-client/build.gradle.kts
</description></item><item><title>#226 IpcHttpClient working with DemoLaunchableApp to send/receive http responses. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail903</link><guid isPermaLink="false">job/dev-language/226/changes#detail903</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcTags.kt
lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ServiceConnectionMessengerProvider.kt
app-android/src/main/AndroidManifest.xml
app-android/build.gradle.kts
lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt
lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.kt
app-android/src/main/kotlin/world/respect/RespectApp.kt
lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt
lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/OkHttpClientProvider.kt
lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt
gradle.properties
respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/IHttpResponseOkHttpAdapter.kt
</description></item><item><title>#226 Update empty state message in collections flow to "No collections yet" in Maestro test (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail904</link><guid isPermaLink="false">job/dev-language/226/changes#detail904</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
</description></item><item><title>#226 Update Maestro test flow to reflect UI text changes for sections and items (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail905</link><guid isPermaLink="false">job/dev-language/226/changes#detail905</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
</description></item><item><title>#226 Update Maestro user test flow (`002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml`) to fix navigation steps and screen assertions. (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail906</link><guid isPermaLink="false">job/dev-language/226/changes#detail906</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
</description></item><item><title>#226 Update IpcHttpService to run outgoing http request asynchronously. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail907</link><guid isPermaLink="false">job/dev-language/226/changes#detail907</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt
lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt
lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt
gradle.properties
</description></item><item><title>#226 Change package names for http-ipc. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail908</link><guid isPermaLink="false">job/dev-language/226/changes#detail908</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HeadersAdapter.kt
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt
lib-http-ipc-server/build.gradle.kts
app-android/build.gradle.kts
lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/InstrumentationTestRunner.kt
lib-http-ipc-server/src/main/AndroidManifest.xml
lib-http-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/HeadersAdapterUnitTest.kt
lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt
lib-http-ipc-server/src/androidTest/AndroidManifest.xml
lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcTags.kt
lib-http-ipc-shared/consumer-rules.keep
lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.kt
lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt
lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcTags.kt
lib-cache-ipc-server/src/main/AndroidManifest.xml
lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt
lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/InstrumentationTestRunner.kt
lib-cache-ipc-shared/consumer-rules.keep
lib-http-ipc-client/build.gradle.kts
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt
lib-http-ipc-shared/build.gradle.kts
lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt
lib-cache-ipc-client/src/main/keepRules/rules.keep
lib-cache-ipc-server/.gitignore
lib-http-ipc-client/src/main/AndroidManifest.xml
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt
lib-cache-ipc-server/consumer-rules.keep
lib-http-ipc-server/.gitignore
lib-cache-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.kt
lib-cache-ipc-client/src/main/AndroidManifest.xml
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcIntent.kt
lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt
lib-cache-ipc-client/.gitignore
lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt
lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/OkHttpClientProvider.kt
lib-http-ipc-server/consumer-rules.keep
lib-http-ipc-client/.gitignore
lib-http-ipc-client/src/main/keepRules/rules.keep
lib-http-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt
lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt
lib-cache-ipc-server/src/main/keepRules/rules.keep
lib-cache-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt
lib-http-ipc-shared/src/main/AndroidManifest.xml
lib-http-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt
lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/OkHttpClientProvider.kt
lib-cache-ipc-shared/src/main/AndroidManifest.xml
lib-cache-ipc-shared/.gitignore
lib-cache-ipc-shared/src/main/keepRules/rules.keep
lib-http-ipc-shared/src/main/keepRules/rules.keep
lib-cache-ipc-server/build.gradle.kts
lib-cache-ipc-shared/build.gradle.kts
lib-cache-ipc-server/src/androidTest/AndroidManifest.xml
settings.gradle.kts
lib-cache-ipc-client/consumer-rules.keep
lib-cache-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt
lib-cache-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt
gradle.properties
lib-http-ipc-server/src/main/keepRules/rules.keep
lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcIntent.kt
lib-cache-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HeadersAdapter.kt
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt
lib-cache-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/HeadersAdapterUnitTest.kt
lib-http-ipc-shared/.gitignore
lib-cache-ipc-client/build.gradle.kts
lib-http-ipc-client/consumer-rules.keep
</description></item><item><title>#226 Use WeakReferences for calls in IpcHttpClientImpl (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail909</link><guid isPermaLink="false">job/dev-language/226/changes#detail909</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt
lib-http-ipc-server/build.gradle.kts
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt
lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt
lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/ext/ResponseBuilderExt.kt
gradle.properties
</description></item><item><title>#226 Update UI test expectations in `002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml` to match "Edit collection" text (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail910</link><guid isPermaLink="false">job/dev-language/226/changes#detail910</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
</description></item><item><title>#226 Use ExecutorService instead of new thread creation when handling IPC http request/response bodies. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail911</link><guid isPermaLink="false">job/dev-language/226/changes#detail911</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt
lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt
lib-http-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt
</description></item><item><title>#226 Update HttpIpcIntegrationTest to use an asset dispatcher so other files types can be tested. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail912</link><guid isPermaLink="false">job/dev-language/226/changes#detail912</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-test-resources/src/androidMain/assets/media/video.mp4
lib-http-ipc-server/build.gradle.kts
lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt
lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/MockWebServerAssetDispatcher.kt
</description></item><item><title>#226 Add tests on HttpIpc error handling (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail913</link><guid isPermaLink="false">job/dev-language/226/changes#detail913</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt
lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/MockWebServerAssetDispatcher.kt
</description></item><item><title>#226 Improve HttpIpc error handling and timeout handling. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail914</link><guid isPermaLink="false">job/dev-language/226/changes#detail914</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcKeys.kt
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HeadersAdapter.kt
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/ResponseAdapter.kt
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/HttpIpcWhat.kt
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/adapters/HeadersAdapter.kt
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/adapters/TimeoutAdapter.kt
lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/RequestAdapter.kt
lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/ext/MockResponseBuilderExt.kt
lib-http-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/HeadersAdapterUnitTest.kt
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/IpcHttpKeys.kt
lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt
lib-http-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/ResponseAdapterTest.kt
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt
lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/MockWebServerAssetDispatcher.kt
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/adapters/RequestAdapter.kt
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt
lib-http-ipc-shared/src/androidTest/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt
lib-http-ipc-shared/src/test/java/org/openeel/libcache/ipc/core/RequestAdapterUnitTest.kt
lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/IpcTestApplication.kt
lib-http-ipc-shared/src/main/kotlin/org/openeel/libcache/ipc/core/adapters/ResponseAdapter.kt
</description></item><item><title>#226 Add test of socket exception (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail915</link><guid isPermaLink="false">job/dev-language/226/changes#detail915</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcCall.kt
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpCall.kt
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClientImpl.kt
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcClient.kt
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcClientImpl.kt
lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/IpcHttpClient.kt
</description></item><item><title>#226 Add HttpIpcClientBuilder and some related READMEs. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail916</link><guid isPermaLink="false">job/dev-language/226/changes#detail916</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ServiceConnectionMessengerProvider.kt
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcClientBuilder.kt
lib-http-ipc-client/README.md
lib-http-ipc-shared/README.md
gradle.properties
</description></item><item><title>#226 Update naming on HttpIpcService. Add ready to uncomment code to allow for testing of HttpIpc using the WebViewActivity. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail917</link><guid isPermaLink="false">job/dev-language/226/changes#detail917</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/IpcHttpService.kt
app-android/src/main/AndroidManifest.xml
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/webview/OkHttpWebViewClient.kt
lib-http-ipc-server/src/androidTest/AndroidManifest.xml
app-android/build.gradle.kts
respect-app-compose/build.gradle.kts
respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
lib-http-ipc-client/README.md
lib-http-ipc-server/src/androidTest/java/org/openeel/libcache/ipc/server/HttpIpcIntegrationTest.kt
lib-http-ipc-server/src/main/kotlin/org/openeel/libcache/ipc/server/HttpIpcService.kt
</description></item><item><title>#226 Add OKHttp interceptor to use response from HttpIpc when already cached. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail918</link><guid isPermaLink="false">job/dev-language/226/changes#detail918</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/interceptor/HttpIpcInterceptor.kt
</description></item><item><title>#226 Tidyup HttpIpcCall. Update demo to include image. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail919</link><guid isPermaLink="false">job/dev-language/226/changes#detail919</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-ipc-messagebridge/src/main/kotlin/org/openeel/lib/ipc/messagebridge/ServiceConnectionMessengerProvider.kt
respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcClientImpl.kt
lib-http-ipc-client/src/main/kotlin/org/openeel/libcache/ipc/client/HttpIpcCall.kt
gradle.properties
</description></item><item><title>#226 Clean up and streamline collection-related Maestro tests (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail920</link><guid isPermaLink="false">job/dev-language/226/changes#detail920</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
</description></item><item><title>#226 Bump version (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail921</link><guid isPermaLink="false">job/dev-language/226/changes#detail921</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>gradle.properties
</description></item><item><title>#226 Improve support for launching native apps using intent uri and custom action. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail922</link><guid isPermaLink="false">job/dev-language/226/changes#detail922</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/src/main/kotlin/world/respect/AppKoinModule.kt
app-android/src/main/AndroidManifest.xml
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt
</description></item><item><title>#226 Add non-https support to query for org.openeel.action.LAUNCH (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail923</link><guid isPermaLink="false">job/dev-language/226/changes#detail923</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/src/main/AndroidManifest.xml
</description></item><item><title>#226 Add support to show app installation prompt. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail924</link><guid isPermaLink="false">job/dev-language/226/changes#detail924</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
app-android/src/main/kotlin/world/respect/MainActivity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt
app-android/src/main/AndroidManifest.xml
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt
</description></item><item><title>#226 Add referrer parameter when directing users to an app store. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail925</link><guid isPermaLink="false">job/dev-language/226/changes#detail925</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt
</description></item><item><title>#226 Add referrer parameter when directing users to an app store. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail926</link><guid isPermaLink="false">job/dev-language/226/changes#detail926</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt
</description></item><item><title>#226 Rename install prompt to GoToAppStore. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail927</link><guid isPermaLink="false">job/dev-language/226/changes#detail927</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseProcessor.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
app-android/src/main/kotlin/world/respect/MainActivity.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCase.kt
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/SubmitActivityContextJobUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/installapp/ShowInstallAppPromptUseCaseAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt
</description></item><item><title>#226 Add mobile only lessons to the demoapp catalog. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail928</link><guid isPermaLink="false">job/dev-language/226/changes#detail928</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt
</description></item><item><title>#226 Update README_ADD_YOUR_APP.md to add guidance on handling publications that require a native app. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail929</link><guid isPermaLink="false">job/dev-language/226/changes#detail929</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt
README_ADD_YOUR_APP.md
</description></item><item><title>#226 Update README_ADD_YOUR_APP.md to add guidance on intent filter. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail930</link><guid isPermaLink="false">job/dev-language/226/changes#detail930</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>README_ADD_YOUR_APP.md
</description></item><item><title>#226 Add initial language map for multilingual launchable app demo. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail931</link><guid isPermaLink="false">job/dev-language/226/changes#detail931</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt
respect-server/src/main/resources/demoapp/locales/fr-FR.json
respect-server/src/main/resources/demoapp/locales/en-US.json
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt
</description></item><item><title>#226 Update demo app to show multiple language versions. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail932</link><guid isPermaLink="false">job/dev-language/226/changes#detail932</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt
respect-server/src/main/resources/demoapp/index.html
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt
respect-server/src/main/resources/demoapp/locales/fr-FR.json
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt
respect-server/src/main/resources/demoapp/locales/en-US.json
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt
</description></item><item><title>#226 Update demo app examples to include multiple languages. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail933</link><guid isPermaLink="false">job/dev-language/226/changes#detail933</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt
README_ADD_YOUR_APP.md
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt
respect-lib-opds-model/README_LAUNCHABLE_APP.md
</description></item><item><title>#226 Update demoapp index.html (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail934</link><guid isPermaLink="false">job/dev-language/226/changes#detail934</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/resources/demoapp/index.html
</description></item><item><title>#226 Add support to display alternative language versions for apps and learning units. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail935</link><guid isPermaLink="false">job/dev-language/226/changes#detail935</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
contrib/language-names.ods
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
</description></item><item><title>#226 Update grade collection title. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail936</link><guid isPermaLink="false">job/dev-language/226/changes#detail936</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt
</description></item><item><title>#226 Fix OpdsRespectRepositoryIntegrationTest.kt compilation (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail937</link><guid isPermaLink="false">job/dev-language/226/changes#detail937</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
</description></item><item><title>#226 Update README_ADD_YOUR_APP.md documentation on loading offline resources. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail938</link><guid isPermaLink="false">job/dev-language/226/changes#detail938</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>README_ADD_YOUR_APP.md
</description></item><item><title>#226 Fix README_ADD_YOUR_APP.md link to README_LAUNCHABLE_APP.md (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail939</link><guid isPermaLink="false">job/dev-language/226/changes#detail939</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>README_ADD_YOUR_APP.md
</description></item><item><title>#226 Update AGENTS.md for main project and respect-lib-shared. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail940</link><guid isPermaLink="false">job/dev-language/226/changes#detail940</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/AGENTS.md
AGENTS.md
</description></item><item><title>#226 Update AGENTS.md for respect-datalayer and respect-datalayer-db. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail941</link><guid isPermaLink="false">job/dev-language/226/changes#detail941</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/AGENTS.md
respect-datalayer/AGENTS.md
</description></item><item><title>#226 Initial implementation of Activity Profile document storage using local database. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail942</link><guid isPermaLink="false">job/dev-language/226/changes#detail942</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocumentByteArrayImpl.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentEntity.kt
respect-datalayer-db/AGENTS.md
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/SharedConverters.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt
AGENTS.md
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/InstantAsTimestampString.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt
</description></item><item><title>#226 Initial implementation of Activity Profile document storage using local database. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail943</link><guid isPermaLink="false">job/dev-language/226/changes#detail943</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/16.json
</description></item><item><title>#226 Rename DocumentParams and MultiDocParams. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail944</link><guid isPermaLink="false">job/dev-language/226/changes#detail944</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt
</description></item><item><title>#226 Refactor XapiActivityProfileResource.kt to be a descendant of generic XapiDocumentResource.kt (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail945</link><guid isPermaLink="false">job/dev-language/226/changes#detail945</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt
</description></item><item><title>#226 Add xAPI Activity Profile route (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail946</link><guid isPermaLink="false">job/dev-language/226/changes#detail946</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt
respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiActivityProfileRoute.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt
respect-server/build.gradle.kts
gradle/libs.versions.toml
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt
respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt
</description></item><item><title>#226 Update AGENTS.md guidance for datalayer-db and datalayer-http. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail947</link><guid isPermaLink="false">job/dev-language/226/changes#detail947</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttpClient.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttpClient.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttp.kt
respect-datalayer-http/AGENTS.md
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasskeyDataSourceHttpClient.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttpClient.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasskeyDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttpClient.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttpClient.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttpClient.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttpClient.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/AssignmentDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttpClient.kt
respect-datalayer-db/AGENTS.md
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttpClient.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttpClient.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttpClient.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttpClient.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttp.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttpClient.kt
</description></item><item><title>#226 Add XapiActivityProfileResourceHttpClient implementation. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail948</link><guid isPermaLink="false">job/dev-language/226/changes#detail948</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt
respect-lib-xapi-core/build.gradle.kts
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt
</description></item><item><title>#226 Enable assertions for "Assignment Result Statement Demo" app title in Maestro test flow (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail949</link><guid isPermaLink="false">job/dev-language/226/changes#detail949</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
</description></item><item><title>#226 Work in progress: add guidance on document APIs synchronizing deletions. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail950</link><guid isPermaLink="false">job/dev-language/226/changes#detail950</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt
respect-datalayer-repository/AGENTS.md
</description></item><item><title>#226 Update xapi module package names to follow new convention - just lib. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail951</link><guid isPermaLink="false">job/dev-language/226/changes#detail951</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-server/src/main/AndroidManifest.xml
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocumentByteArrayImpl.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportPeriod.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/Indicator.kt
respect-lib-xapi-nanohttpd/.gitignore
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiObjectType.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/rusticilaunch/model/TinCanXmlDocument.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt
lib-xapi-ipc-shared/.gitignore
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/queryresponse/XapiSqlQueryResponse.kt
respect-lib-xapi-ipc-shared/build.gradle.kts
lib-xapi-core/README.md
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt
respect-lib-xapi-ipc-server/src/androidTest/AndroidManifest.xml
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataReadyStateExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementObjectExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActorExt.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/StatementReportRow.kt
lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt
lib-xapi-core/README_CLASS_RECIPE.md
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStatementsResource.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
lib-xapi-core/README_ASSIGNMENT_RECIPE.md
lib-xapi-ipc-server/proguard-rules.pro
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActorExt.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/InstrumentationTestRunner.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementObjectExt.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiConstants.kt
lib-xapi-ipc-server/.gitignore
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAccount.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportConditionFilterOptions.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActivityDefinition.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/queryresponse/XapiSqlQueryResponse.kt
respect-lib-xapi-core/README_PERMISSION_RECIPE.md
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
respect-lib-xapi-nanohttpd/build.gradle.kts
lib-xapi-ipc-client/consumer-rules.pro
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/DefaultIndicators.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt
respect-lib-xapi-ipc-server/consumer-rules.pro
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiContextExt.kt
respect-lib-xapi-core/README_XAPI_OPDS.md
app-android/build.gradle.kts
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiExceptionExt.kt
respect-lib-xapi-ipc-client/build.gradle.kts
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataReadyStateExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementsResourceExt.kt
lib-xapi-core/src/jvmTest/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXmlDocumentTest.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiContextExt.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcClientBuilder.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiRequestHeaders.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt
lib-xapi-ipc-shared/consumer-rules.pro
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcClientBuilder.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportConditionFilterOptions.kt
respect-lib-xapi-core/README_APPLISTING_RECIPE.md
lib-xapi-ipc-client/build.gradle.kts
respect-lib-xapi-ipc-server/build.gradle.kts
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContext.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt
respect-lib-xapi-core/build.gradle.kts
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt
lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/InstrumentationTestRunner.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiResult.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAccount.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt
lib-xapi-ipc-shared/README.md
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContextActivities.kt
respect-lib-xapi-core/README_EXTENSION_PUBLICATION.md
lib-xapi-ipc-server/build.gradle.kts
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiRequire.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonObjectExt.kt
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiState.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt
respect-lib-xapi-core/src/jvmTest/kotlin/world/respect/lib/xapi/rusticilaunch/TinCanXmlDocumentTest.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatement.kt
respect-lib-shared/build.gradle.kts
respect-lib-xapi-ipc-shared/src/main/AndroidManifest.xml
lib-xapi-ipc-client/proguard-rules.pro
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocumentByteArrayImpl.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataLoadMetaInfoExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt
respect-datalayer/build.gradle.kts
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/Indicator.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportOptions.kt
respect-lib-xapi-ipc-client/.gitignore
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiAgentsResource.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAgent.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceFlags.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/rusticilaunch/model/TinCanXmlDocument.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementsResourceExt.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/StringValuesExt.kt
lib-xapi-ipc-shared/proguard-rules.pro
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentTaskProgress.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiRequire.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContextActivities.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiResult.kt
lib-xapi-core/README_CLASSGROUPS_RECIPE.md
respect-lib-xapi-ipc-shared/README.md
lib-xapi-core/README_XAPI_OPDS.md
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportOptions.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiExceptionExt.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiActorAndAssignmentProgress.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleStringValues.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAttachment.kt
lib-xapi-core/README_PERMISSION_RECIPE.md
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiInteractionTypeEnum.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt
lib-xapi-core/README_XAPI_SQL_QUERY.md
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAgent.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiStatementExt.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiState.kt
respect-lib-xapi-ipc-server/proguard-rules.pro
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/StringValuesExt.kt
lib-xapi-ipc-client/src/main/AndroidManifest.xml
respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md
lib-xapi-ipc-shared/build.gradle.kts
lib-xapi-ipc-shared/src/main/AndroidManifest.xml
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt
respect-lib-xapi-core/README_CLASS_RECIPE.md
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcResourceFlags.kt
respect-lib-xapi-core/.gitignore
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementResult.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiAgentsResource.kt
respect-lib-xapi-ipc-shared/consumer-rules.pro
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiAssignmentTaskProgress.kt
respect-app-compose/build.gradle.kts
lib-xapi-ipc-server/src/androidTest/AndroidManifest.xml
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportSeries.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiRequestHeaders.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementRef.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityDefinitionExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivitiesResource.kt
lib-xapi-nanohttpd/build.gradle.kts
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiConstants.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/DataLoadMetaInfoExt.kt
respect-lib-xapi-core/README.md
lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
respect-lib-xapi-ipc-server/.gitignore
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt
respect-lib-xapi-ipc-client/consumer-rules.pro
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/DefaultIndicators.kt
respect-lib-xapi-ipc-client/proguard-rules.pro
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
lib-xapi-core/README_EXTENSION_PUBLICATION.md
lib-xapi-core/README_APPLISTING_RECIPE.md
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSenderExt.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/AssignmentAndProgress.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportPeriod.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiObjectType.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt
lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/IpcTestApplication.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityExt.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiAttachment.kt
respect-lib-xapi-core/README_CLASSGROUPS_RECIPE.md
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcTags.kt
lib-xapi-nanohttpd/.gitignore
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesBuilderExt.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResponseHeaders.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcTags.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiContext.kt
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiInteractionTypeEnum.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/StatementReportRow.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt
respect-lib-xapi-ipc-client/src/main/AndroidManifest.xml
lib-xapi-ipc-server/src/main/AndroidManifest.xml
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActivityExt.kt
respect-lib-cache/build.gradle.kts
lib-xapi-ipc-client/.gitignore
lib-xapi-core/build.gradle.kts
lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentSummary.kt
lib-xapi-core/.gitignore
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleStringValues.kt
respect-lib-xapi-ipc-shared/.gitignore
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/XapiActorAndAssignmentProgress.kt
respect-lib-xapi-core/README_XAPI_SQL_QUERY.md
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiStatementsResourceIpcClient.kt
respect-lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivitiesResource.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesBuilderExt.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResponseHeaders.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/composites/AssignmentAndProgress.kt
settings.gradle.kts
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiActor.kt
respect-lib-xapi-ipc-shared/proguard-rules.pro
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiAssignmentProgressExt.kt
lib-xapi-ipc-server/consumer-rules.pro
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/extensions/reportoptions/ReportSeries.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentResult.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiStatementObject.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/AssignmentResult.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiGroup.kt
</description></item><item><title>#226 Refactor xapi statement resource tests into lib-xapi-test (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail952</link><guid isPermaLink="false">job/dev-language/226/changes#detail952</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
lib-xapi-test/AGENTS.md
settings.gradle.kts
lib-xapi-test/README.md
respect-datalayer-db/build.gradle.kts
lib-xapi-core/README.md
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAssertions.kt
gradle/libs.versions.toml
lib-xapi-test/.gitignore
lib-xapi-test/src/androidMain/AndroidManifest.xml
build.gradle.kts
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiAssertions.kt
lib-xapi-test/build.gradle.kts
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiStatementResourceAssertions.kt
</description></item><item><title>#226 Fix AndroidManifest.xml query section for launchable apps to handle when query includes host and pathPrefix. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail953</link><guid isPermaLink="false">job/dev-language/226/changes#detail953</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/enterlink/EnterLinkScreen.kt
app-android/src/main/AndroidManifest.xml
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/URLProtocolExt.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt
gradle.properties
</description></item><item><title>#226 Update AndroidManifest.xml to include new testing server url. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail954</link><guid isPermaLink="false">job/dev-language/226/changes#detail954</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/composeResources/values/strings.xml
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
respect-lib-shared/src/commonMain/resources/directories/default.properties
app-android/src/main/AndroidManifest.xml
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/login/LoginScreen.kt
respect-lib-shared/src/androidMain/resources/directories/default.properties
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt
gradle.properties
</description></item><item><title>#226 Bump version number (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail955</link><guid isPermaLink="false">job/dev-language/226/changes#detail955</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/build.gradle.kts
</description></item><item><title>#226 Remove gradle properties put there by previous AGP plugin upgrade assistants that are not needed. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail956</link><guid isPermaLink="false">job/dev-language/226/changes#detail956</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-test-resources/build.gradle.kts
respect-lib-test/build.gradle.kts
respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.desktop.kt
respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt
respect-datalayer-http/build.gradle.kts
respect-server/build.gradle.kts
respect-app-compose/src/desktopMain/kotlin/world/respect/images/RespectImage.desktop.kt
respect-lib-util/build.gradle.kts
respect-datalayer/build.gradle.kts
respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.desktop.kt
respect-app-compose/build.gradle.kts
respect-lib-dataloadstate/build.gradle.kts
respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.desktop.kt
respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-app-compose/src/jvmMain/kotlin/world/respect/app/app/AppIcon.desktop.kt
respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.desktop.kt
respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt
respect-app-compose/src/desktopMain/kotlin/world/respect/main.kt
respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.desktop.kt
respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt
respect-app-compose/src/desktopMain/kotlin/world/respect/app/components/BasicWebView.desktop.kt
respect-datalayer-db/build.gradle.kts
respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt
respect-app-compose/src/desktopMain/kotlin/world/respect/app/app/AppIcon.desktop.kt
respect-lib-serializers/build.gradle.kts
respect-lib-opds-model/build.gradle.kts
respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/BasicWebView.desktop.kt
gradle.properties
respect-app-compose/src/jvmMain/kotlin/world/respect/images/RespectImage.desktop.kt
respect-app-compose/src/desktopMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.desktop.kt
respect-server/src/main/resources/openapi/openapi.yaml
respect-app-compose/src/jvmMain/resources/sample-feed.json
respect-app-compose/src/desktopMain/resources/sample-feed.json
respect-app-compose/src/jvmMain/kotlin/world/respect/main.kt
</description></item><item><title>#226 Add 9.json database schema. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail957</link><guid isPermaLink="false">job/dev-language/226/changes#detail957</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/9.json
</description></item><item><title>#226 Update to AGP9.4 (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail958</link><guid isPermaLink="false">job/dev-language/226/changes#detail958</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>gradle/libs.versions.toml
settings.gradle.kts
</description></item><item><title>#226 Fix display of assignments list to ensure icon is shown even after other statements for activityid are received. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail959</link><guid isPermaLink="false">job/dev-language/226/changes#detail959</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-core/README_ASSIGNMENT_RECIPE.md
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
app-android/build.gradle.kts
gradle.properties
</description></item><item><title>#226 Fix display of duration for StatementDetail. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail960</link><guid isPermaLink="false">job/dev-language/226/changes#detail960</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/DurationExt.kt
</description></item><item><title>#226 Bump version. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail961</link><guid isPermaLink="false">job/dev-language/226/changes#detail961</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/build.gradle.kts
gradle.properties
</description></item><item><title>#226 Fix crash on QR code scanning screen caused by lack of proguard rules from MLKit transitive dependency. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail962</link><guid isPermaLink="false">job/dev-language/226/changes#detail962</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/build.gradle.kts
app-android/proguard-rules.pro
gradle.properties
</description></item><item><title>#226 Update issue template label for app catalog request (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail963</link><guid isPermaLink="false">job/dev-language/226/changes#detail963</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD
</description></item><item><title>#226 Refactor xapi activity profile resource tests into lib-xapi-test (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail964</link><guid isPermaLink="false">job/dev-language/226/changes#detail964</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-core/AGENTS.md
lib-xapi-test/AGENTS.md
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentResourceExt.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonExt.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiActivityProfileResourceAssertions.kt
</description></item><item><title>#226 Refactor module names. Work in progress creation of dedicated httpclient test for xapi statement resource. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail965</link><guid isPermaLink="false">job/dev-language/226/changes#detail965</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/WriteQueueItemEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/UnauthorizedException.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonRoleEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntityPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt
respect-datalayer-repository/AGENTS.md
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt
respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/EnqueueDrainRemoteWriteQueueUseCaseAndroidImpl.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumSubjectEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityInteractionDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumLinkEntityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/EnrollmentAdapter.kt
respect-datalayer-db/AGENTS.md
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/XXHashUidNumberMapper.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/SystemPermissionDaoCommon.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ClassDataSourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt
respect-datalayer-http/README.md
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource2.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumSubjectEntity.kt
respect-server/src/main/kotlin/world/respect/server/routes/qrcode/PersonQrBadgeRoute.kt
lib-dataloadstate-ktor-server/.gitignore
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.kt
respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/ext/SchoolDirectoryEntryExt.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttpClient.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/headers/directives/DirectivesToMap.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedMetadataEntity.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityObjectTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/AddDefaultSchoolPermissionGrantsUseCase.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LogPrefixFunction.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/LocalModelDataSource.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/11.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StateIdAndLastModified.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerParams.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryLangMapEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/4.json
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttpClient.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RemoteMediator2.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttpClient.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolConfigEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolAppAdapter.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttpClient.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSummaryResultRow.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFacetAdapter.kt
app-android/build.gradle.kts
respect-datalayer-http/build.gradle.kts
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/GetAuthenticatedPersonUseCase.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueRunPullSyncUseCase.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PullSyncStatusEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasskeyDataSourceDb.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasswordRoute.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbLangMapEntryDao.kt
respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/EnqueueRunPullSyncUseCaseAndroidImpl.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserProfile.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt
respect-lib-dataloadstate/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpRequestBuilderExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementContextActivityJoinDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedMetadataEntityAdapter.kt
lib-dataloadstate-ktor-server/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PullSyncStatusEntityDao.kt
lib-dataloadstate-ktor-server/src/commonMain/kotlin/world/respect/lib/dataloadstate/ktorserver/ApplicationCallExt.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasskeyDataSourceRepository.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolUrlHttpDataSourceExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
lib-xapi-ipc-server/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentLearningResourceRefEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt
respect-lib-test/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFacetEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetPermissionLastModifiedUseCase.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterEnrollment.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRelatedPersonEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/pullsync/PullSyncTracker.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/MapPagingSource.kt
respect-datalayer-repository/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.kt
lib-datalayer-http-server/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedMetadataEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiGroupMemberActorJoin.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateEntityDao.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassPermissionEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPasskey.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCaseImpl.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ReportDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/PullSyncTrackerDbImpl.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoin.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonPasskeyAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/DataLayerTags.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolConfigSettingDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrBadgeDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimesExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ReportAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/ExtendedDataSourceValidationHelper.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/ForbiddenException.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolConfigSetting.kt
respect-lib-dataloadstate/.gitignore
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/WriteQueueItemEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassPermission.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSourceLocal.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/3.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/BuildFlags.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSource.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttpClient.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt
respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/DataBuilderExt.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttpClient.kt
respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/InstantAsTimestampString.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityExtensionEntity.kt
respect-datalayer-db/README.md
respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiStatementsResourceRoute.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonPasswordAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolPermissionGrantEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/DeviceInfo.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/IndicatorEntity.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/TestOpdsStorage.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/SharedConverters.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/NetworkValidationInfo.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasskeyRoute.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/DoorOffsetLimitRemoteMediator.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/SessionTimeAndProgressInfo.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DatalayerPagingUtil.kt
lib-datalayer-http-server/.gitignore
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt
respect-lib-shared-se/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrollmentEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthTokenProvider.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsParentType.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolConfigEntityDao.kt
lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiStatementsResourceRoute.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/LocalModelDataSourceExt.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrBadgeAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/LangMapEntityExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/daos/NetworkValidationInfoEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LastModifiedAndPermission.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/RemoteWriteQueue.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/ListExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCase.kt
respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncWorker.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/15.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrBadge.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/CheckPersonPermissionUseCaseDbImpl.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolApp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolPermissionGrantDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AuthTokenEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGenderEnum.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt
respect-datalayer-repository/src/jvmTest/resources/world/respect/datalayer/repository/opds/index.json
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadState.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/LangMapAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPassword.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentAssigneeRefTypeEnum.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/5.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonStatusEnum.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiAgentsResourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/entities/NetworkValidationInfoEntity.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/9.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentEntity.kt
lib-xapi-core/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonGenderEnum.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterOrgGUIDRef.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolUrlBasedDataSource.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnumExt.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/2.json
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttpClient.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttpClient.kt
settings.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Report.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LoadParamsExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/StatusEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDeleteCommand.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasswordDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectRedeemInviteState.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/LangMapEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClass.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectUserDataSource.kt
respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolJsonRoute.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/RespectAppManifestExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiActivityProfileRoute.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/GetListCommonParams.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/2.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonRelatedPersonEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttpClient.kt
respect-datalayer-repository/src/jvmTest/resources/world/respect/datalayer/repository/opds/lesson001.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt
lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementResourceHttpClientTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/DateConstants.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryLangMapEntityDao.kt
respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntityWithRoles.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsGroupEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/FilterPagingSource.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt
respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/WorkerExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentRoleEnumExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/IntExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolPermissionGrantDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthenticatedUserPrincipalId.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntity.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadMetaInfo.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiTimes.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiSessionEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/PersonExt.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json
respect-server/build.gradle.kts
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/IPagingSourceFactory.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserId.kt
respect-datalayer/src/androidMain/AndroidManifest.xml
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntityTypeEnum.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/model/RespectAppManifest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolPermissionGrantAdapter.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/9.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/ReportQueryResult.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/OrderOption.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterResourceGUIDRef.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttpClient.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/ILangMapEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolPermissionGrant.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBaseStatusEnum.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasswordEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/ILangMapEntityExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/EmptyPagingSourceFactory.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonRole.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbLangMapEntry.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/LangMapEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/JsonObjectBuilderExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectConstants.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentsResourceDb.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/6.json
respect-datalayer/.gitignore
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRole.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrBadgeEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassInvteModeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntity.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PermissionCheckPagingSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/UuidExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumLinkEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsGroupEntity.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivitiesResourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueDrainRemoteWriteQueueUseCase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/ILangMapEntityAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/IndicatorEntityDao.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt
respect-lib-shared/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntryPropEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/GetPermissionLastModifiedUseCaseDbImpl.kt
respect-datalayer/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/PagingSourceExt.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolPermissionGrantRoute.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimes.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AuthTokenAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonPasskeyAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt
respect-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ClassAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolAppEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/EnrollmentRoleEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentProgressEntityRow.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasskeyEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityLangMapEntryDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolAppDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Enrollment.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRoleEntity.kt
respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/RepoWorkerConstants.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUser.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiEntityObjectTypeFlags.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/ListExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiGroupMemberActorJoinDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiSerializers.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsTypeConverters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PullSyncStatus.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectSchoolDirectory.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/LastModifiedAndETagDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/RepositoryModelDataSource.kt
respect-datalayer-db/build.gradle.kts
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AuthTokenEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassPermissionEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserGUIDRef.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSourceLocal.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerHeaders.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonRoleEntityDao.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadParams.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpHeadersExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PagingSourceFactoryHolder.kt
respect-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt
respect-datalayer-http/AGENTS.md
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonRoleEnumExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DelegatedInvalidationPagingSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSource.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasskeyDataSourceHttpClient.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt
respect-app-compose/build.gradle.kts
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttpClient.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolAppEntityDao.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttpClient.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/14.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/SchoolPermissionGrantExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntityWithPermissions.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/WriteQueueItemAdapter.kt
lib-xapi-nanohttpd/build.gradle.kts
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumSubjectEntityAdapters.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDeleteCommandDao.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/writequeue/RemoteWriteQueueDbImpl.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryEntryAdapter.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClassGUIDRef.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/StateIdAndLastModified.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/WritableDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivitiesResourceDb.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryPagingSourceFactory.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportQueryResult.kt
respect-datalayer/README.md
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/UuidExt.kt
respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AuthToken.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrCodeBadgeDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsPublicationEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/ExtendedDataSourceValidationHelperImpl.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/db/opds/adapters/lesson001.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/UidNumberMapper.kt
respect-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsPublicationEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/PersonPasskeyEntityDao.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/16.json
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt
respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttpClient.kt
respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/NewLocalDataSource.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleTypeEnum.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/PermissionFlags.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/ValidationInfoAdapter.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ReportEntityDao.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/3.json
respect-datalayer/AGENTS.md
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt
respect-datalayer-repository/src/jvmTest/resources/logback.xml
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonPasswordEntityDao.kt
respect-datalayer-repository/README.md
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ReportDataSourceRepository.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActivityExt.kt
respect-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/8.json
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentLearningResourceRefEntityDao.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PullSyncStatusAdapter.kt
respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/composites/ClazzListDetails.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/BaseDataSourceValidationHelper.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementsResourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGUIDRef.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt
respect-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueWorker.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/InviteStatusEnum.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSourceLocal.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumLinkEntityDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/EmptyPagingSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/4.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateEntity.kt
</description></item><item><title>#226 Refactor module names. Work in progress creation of dedicated httpclient test for xapi statement resource. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail966</link><guid isPermaLink="false">job/dev-language/226/changes#detail966</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestPersonStorage.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/NetworkValidationInfo.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateEntityDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectRealmDataSourceDb.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSummaryResultRow.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityExtensionDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/LangMapEntityExt.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/DeviceInfo.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectAppDataSourceRepository.kt
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/TestOpdsStorage.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSource.kt
lib-datalayer-repository/log/respect-server.log
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolConfigEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonQrBadgeAdapter.kt
lib-xapi-test/build.gradle.kts
lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiSessionEntity.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/simple-statement.json
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolPermissionGrantDataSourceRepository.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DatalayerPagingUtil.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDeleteCommand.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolAppEntity.kt
lib-datalayer-repository/README.md
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/IndicatorEntity.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolPermissionGrantDao.kt
lib-datalayer/src/androidMain/AndroidManifest.xml
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/ILangMapEntityAdapter.kt
respect-lib-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt
lib-datalayer-http-client/README.md
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSource.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/InviteDataSourceRepository.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Invite.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementsResourceHttpClient.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryPropEnumExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/ext/SchoolDirectoryEntryExt.kt
lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrBadgeDataSource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PullSyncStatusEntityDao.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/ExtendedDataSourceValidationHelper.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/9.json
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/DoorOffsetLimitRemoteMediator.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/RespectUserDataSource.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/AssignmentDataSourceRepository.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/StatusEnum.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSourceLocal.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/InviteStatusEnum.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntity.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueDrainRemoteWriteQueueUseCase.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LogPrefixFunction.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/16.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/ListExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFacetEntity.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/1.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSourceLocal.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/WriteQueueItemAdapter.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/CheckPersonPermissionUseCase.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt
lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/RespectRealmDataSourceRepository.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonStatusEnum.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasswordDataSourceDb.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/GetListCommonParams.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSourceLocal.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentRoleEnumExt.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/2.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PagingSourceFactoryHolder.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/PersonExt.kt
lib-datalayer-http-client/log/respect-server.log
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/group-statement.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/entities/NetworkValidationInfoEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StatementEntityAndVerb.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/xapi/StoreActivitiesUseCase.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasskeyDataSourceRepository.kt
lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/Readme.txt
lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDbTest.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/2.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserProfile.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolAppAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/WriteQueueItemEntity.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/MapPagingSource.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/LocalModelDataSourceExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/WriteQueueItemEntityDao.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AuthToken.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/RepositoryModelDataSource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityEntityDao.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/params/OrderOption.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonPasswordDataSourceRepository.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/ILangMapEntityExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumSubjectEntityAdapters.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/JsonObjectExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/ListExt.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryDataSource.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSourceLocal.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RemoteMediator2.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/9.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/StateIdAndLastModified.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGenderEnum.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolPermissionGrantDataSourceHttpClient.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/LastModifiedAndPermission.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PullSyncStatusEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityInteractionDao.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsFeedExt.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/8.json
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/RespectAppDataSourceHttp.kt
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/res/SampleXapiStatement.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/DateConstants.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/headers/directives/DirectivesToMap.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Enrollment.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AuthTokenEntity.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUser.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/pullsync/PullSyncTracker.kt
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PermissionFlags.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserGUIDRef.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceLocal.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumSubjectEntityDao.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/IntExt.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolDirectoryDataSourceExt.kt
lib-xapi-test/src/androidMain/kotlin/org/openeel/libxapi/test/res/XapiSampleStatements.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/schooldirectory/SchoolDirectoryEntryDataSourceHttpClient.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolPermissionGrantDataSourceDb.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/6.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Clazz.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRoleEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDeleteCommandDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiSubstatementAndVerbEntity.kt
lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueWorker.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonQrBadgeDataSourceHttpClient.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ext/UuidExt.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/8.json
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/IndicatorDataSource.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonPasskeyAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/PersonPasskeyEntityDao.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBase.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/CheckPersonPermissionUseCaseDbImpl.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ClassAdapter.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectSchoolDirectory.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolPermissionGrant.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ext/PermissionFlags.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/15.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/EnrollmentEntityDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedMetadataEntityDao.kt
lib-datalayer-http-client/AGENTS.md
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimesExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/InviteDataSourceDb.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/4.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/InviteExt.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/PermissionCheckPagingSource.kt
lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/WorkerExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntityDao.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ClassDataSourceLocal.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSourceLocal.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsPublicationEntity.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PullSyncStatus.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/PagingSourceExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassPermissionEntityDao.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/10.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiStatementExt.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ReportDataSource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasskeyDataSourceDb.kt
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsPublicationDataSourceRepository.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedMetadataEntityAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonRelatedPersonEntityDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsTypeConverters.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/DelegatedInvalidationPagingSource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbLangMapEntry.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSourceLocal.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSourceLocal.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSource.kt
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/UnauthorizedException.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonGenderEnum.kt
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/IPagingSourceFactory.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/LangMapEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/writequeue/RemoteWriteQueueDbImpl.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryDataSourceDb.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/UuidExt.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/BuildFlags.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonPasswordEntityDao.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadParams.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerParams.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/RespectConstants.kt
lib-dataloadstate/build.gradle.kts
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/LangMapEntityDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsGroupAdapter.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSourceLocal.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonDataSourceDb.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/ModelWithTimes.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ClassDataSourceRepository.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiVerbAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiSessionEntityDao.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnum.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/ext/SchoolUrlHttpDataSourceExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbDao.kt
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/12.json
respect-lib-test-resources/src/commonMain/kotlin/world/respect/lib/test/res/SampleXapiStatement.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActorAdapter.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/4.json
lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/ClassDataSourceHttpClient.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSource.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttpClient.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGUIDRef.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/composites/PersonListDetails.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/EnrollmentDataSourceHttpClient.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/InviteDataSource.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiStatementResourceAssertions.kt
lib-datalayer-db/AGENTS.md
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivitiesResourceDb.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonPasswordAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntry.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActorEntityExt.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiStatementResourceTest.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/RemoteWriteQueue.kt
lib-datalayer-repository/build.gradle.kts
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonEntityDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonQrBadgeEntityDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt
lib-xapi-test/src/jvmMain/kotlin/org/openeel/libxapi/test/res/XapiSampleStatements.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonRoleEnum.kt
lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/EnqueueDrainRemoteWriteQueueUseCaseAndroidImpl.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementAdapter.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PersonRepositoryIntegrationTest.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonRole.kt
lib-datalayer-db/README.md
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/StatementEntityExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoinTypeEnum.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/SharedConverters.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/xapi/SessionTimeAndProgressInfo.kt
lib-datalayer-repository/src/jvmTest/resources/world/respect/datalayer/repository/opds/index.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/PullSyncTrackerDbImpl.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsGroupEntity.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/EnrollmentRoleEnum.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsPublicationDataSourceDb.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsPublicationEntityDao.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/DateConstants.kt
lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryEntryAdapter.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/LocalModelDataSource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasswordEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/InstantAsTimestampString.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttpClient.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonQrBadge.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassInvteModeEnum.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Report.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryEntity.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/ListExt.kt
lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/worker/DataBuilderExt.kt
lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementResourceHttpClientTest.kt
lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncWorker.kt
lib-datalayer-repository/src/jvmTest/resources/world/respect/datalayer/repository/opds/lesson001.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetPermissionLastModifiedUseCase.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonQrCodeBadgeDataSourceRepository.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryAdapter.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/InviteAdapter.kt
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasswordDataSourceHttpClient.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportEntity.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/AssignmentAssigneeRefTypeEnum.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserId.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/7.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiAgentsResourceLocal.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ClassDatasourceDb.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolApp.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/PlaylistRepositoryIntegrationTest.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/ReadiumLinkExt.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-invalid-response.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectRedeemInviteState.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonDataSourceHttpClient.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCaseImpl.kt
lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/opds/adapters/TestOpdsPublicationEntityAdapter.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/Readme.txt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/IndicatorEntityDao.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/3.json
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/Readme.txt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiGroupMemberActorJoin.kt
lib-dataloadstate/.gitignore
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiGroupMemberActorJoinDao.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiTimes.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/InviteEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDataSourceDb.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/ReportDataSourceRepository.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActorDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAssignmentResultRow.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/RespectInviteInfo.kt
lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/performance-response-statement.json
lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/RepoWorkerConstants.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/networkvalidation/BaseDataSourceValidationHelper.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-actor.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRole.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLayerHeaders.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentsResourceDb.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStatementObjectAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/ILangMapEntity.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsPublicationDataSourceHttpClient.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityObjectTypeEnum.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntityJson.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPasskey.kt
lib-datalayer-repository/src/jvmTest/resources/logback.xml
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSource.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-statementref.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/XXHashUidNumberMapper.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassEntityWithPermissions.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/daos/SystemPermissionDaoCommon.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/composites/ClazzListDetails.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonPasskeyAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntity.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/UidNumberMapper.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementContextActivityJoinDao.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/RespectAppManifestExt.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/InviteDataSourceHttpClient.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsGroupEntityDao.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/ForbiddenException.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityLangMapEntryPropEnum.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/14.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryEntityDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityExtensionEntity.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpRequestBuilderExt.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/GetPermissionLastModifiedUseCaseDbImpl.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/domain/AddDefaultSchoolPermissionGrantsUseCase.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiEntityObjectTypeFlags.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/res/XapiStatementNameConstants.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/AuthTokenAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/composite/StateIdAndLastModified.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/EnqueueRunPullSyncUseCase.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/AssignmentLearningResourceRefEntity.kt
lib-datalayer-http-client/build.gradle.kts
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActorEntityTypeEnum.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/shared/paging/OffsetLimitHttpPagingSource.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/3.json
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityInteractionEntityPropEnumExt.kt
lib-datalayer-db/build.gradle.kts
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/ClassPermission.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolAppEntityDao.kt
lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/matching-response-statement.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonPasskeyEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/ReportDataSourceDb.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentProgressEntityRow.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/EmptyPagingSourceFactory.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/ext/OpdsPublicationExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PersonAdapter.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/compatibleapps/model/RespectAppManifest.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsPublicationEntityAdapter.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/LoadParamsExt.kt
lib-datalayer/build.gradle.kts
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/ReportAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryLangMapEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/entities/ReportQueryResult.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/GetAuthenticatedPersonUseCase.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/ext/ParametersBuilderExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ClassEntityDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumLinkEntity.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClass.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/schooldirectory/SchoolDirectoryEntryDataSourceRepository.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolConfigEntityDao.kt
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/sequencing-response-statement.json
lib-datalayer/README.md
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/ValidationInfoAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonQrBadgeDataSourceDb.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/SchoolPermissionGrantExt.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/DummySchoolConfigSettingsDataSource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityEntity.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryPagingSourceFactory.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolConfigSettingDataSource.kt
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/simple-statement.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnumExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonQrBadgeEntity.kt
lib-datalayer/.gitignore
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/daos/NetworkValidationInfoEntityDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStatementContextActivityJoin.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntityWithRoles.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/RespectAppDataSource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/ReportEntityDao.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivitiesResourceLocal.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityLangMapEntryDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/EnrollmentEntity.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterOrgGUIDRef.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolPermissionGrantDataSource.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/PersonPassword.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedMetadataEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/EnrollmentAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolAppDataSourceDb.kt
lib-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt
lib-datalayer-repository/AGENTS.md
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementsResourceLocal.kt
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/db/opds/adapters/lesson001.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/group-statement.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/ReadiumLinkEntityDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/ReadiumSubjectEntity.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsParentType.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/PersonRoleEnumExt.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolUrlBasedDataSource.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/schooldirectory/SchoolDirectoryEntryDataSourceLocal.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/EnrollmentExt.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasskeyDataSourceLocal.kt
respect-lib-test-resources/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/likert-response-statement.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/ext/JsonObjectBuilderExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/IndicatorDataSourceDb.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/13.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityInteractionEntityPropEnum.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryLangMapEntityDao.kt
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/true-false-response-statement.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/PullSyncStatusAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAssignmentResultRowAdapter.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleTypeEnum.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntity.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/DataLayerTags.kt
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/domain/TestCheckPersonPermissionUseCaseImpl.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthTokenProvider.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/11.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStatementEntityJsonDao.kt
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/TestSchoolDb.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadState.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/networkvalidation/ExtendedDataSourceValidationHelperImpl.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClassGUIDRef.kt
lib-datalayer/AGENTS.md
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiSerializers.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/adapters/PersonAdapters.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonPasswordDataSourceExt.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonDataSourceLocal.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttpClient.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolConfigSetting.kt
respect-lib-test-resources/src/commonMain/kotlin/world/respect/lib/test/res/XapiStatementNameConstants.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ClassPermissionEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolPermissionGrantAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/LastModifiedAndETagDb.kt
lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/group-statement.json
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/PersonPasskeyDataSourceHttpClient.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/FilterPagingSource.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterResourceGUIDRef.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/AuthenticatedUserPrincipalId.kt
lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiVerbLangMapEntryDao.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/PersonQrCodeBadgeDataSourceLocal.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolPermissionGrantEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpHeadersExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/ReportQueryResult.kt
lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/appendix-a-long-statement.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStatementAndJsonEntities.kt
lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/pullsync/EnqueueRunPullSyncUseCaseAndroidImpl.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiVerbEntity.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/PersonDataSourceRepository.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/shared/paging/RepositoryOffsetLimitPagingSource2.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/EmptyPagingSource.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterEnrollment.kt
lib-datalayer-db/src/jvmTest/resources/world/respect/datalayer/school/xapi/model/multi-choice-statement-multiple-responses.json
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/EnrollmentDataSourceRepository.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/EnrollmentDataSourceLocal.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/WritableDataSource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/ReadiumLinkEntityAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/adapters/LangMapAdapter.kt
lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/statement-with-object-substatement.json
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/5.json
lib-xapi-test/src/jvmMain/resources/world/respect/datalayer/school/xapi/model/simple-statement.json
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFacetAdapter.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadMetaInfo.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AssignmentLearningResourceRefEntityDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/AuthTokenEntityDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/ext/ActivityLangMapEntryExt.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/pullsync/RunPullSyncUseCase.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBaseStatusEnum.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/ext/XapiActivityExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonRelatedPersonEntity.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/GetWritableRolesListUseCase.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/PersonRoleEntityDao.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/InviteEntityDao.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsPublicationDataSource.kt
</description></item><item><title>#226 Refactor XapiStatementResourceTest to use a single abstract test for multiple implementations. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail967</link><guid isPermaLink="false">job/dev-language/226/changes#detail967</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/ForbiddenException.kt
respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/authwithpassword/GetTokenAndUserProfileWithCredentialDbImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt
respect-server/src/main/kotlin/world/respect/server/routes/passkey/GetAllActivePasskeysRoute.kt
respect-server/src/main/kotlin/world/respect/server/routes/passkey/VerifySignInWithPasskeyRoute.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/exceptions/UnauthorizedException.kt
respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseDb.kt
respect-lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/account/passkey/VerifySignInWithPasskeyUseCase.kt
respect-server/src/main/kotlin/world/respect/server/routes/passkey/RevokePasskeyRoute.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/throwable/ExceptionWithHttpStatusCode.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/shared/paging/CacheableHttpPagingSource.kt
respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/throwable/ExceptionWithHttpStatusCode.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/throwable/HttpErrorResponseException.kt
respect-server/src/main/kotlin/world/respect/server/Application.kt
lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementResourceHttpClientTest.kt
respect-server/src/main/kotlin/world/respect/server/routes/username/UsernameSuggestionRoute.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiStatementResourceTest.kt
respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCaseClient.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
respect-server/src/main/kotlin/world/respect/server/account/invite/username/UsernameSuggestionUseCaseServer.kt
respect-lib-util/src/commonMain/kotlin/world/respect/libutil/util/throwable/ForbiddenException.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/throwable/ForbiddenException.kt
lib-dataloadstate-ktor-server/build.gradle.kts
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/exceptions/XapiException.kt
respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt
respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/PersonPasskeyDataSourceDb.kt
lib-dataloadstate-ktor-server/src/commonMain/kotlin/world/respect/lib/dataloadstate/ktorserver/ApplicationCallExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/EnrollmentDataSourceDb.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteInfoRoute.kt
respect-server/src/main/kotlin/world/respect/server/routes/username/checkusernameunique/CheckUsernameUniqueRoute.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt
</description></item><item><title>#226 Remove test server log. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail968</link><guid isPermaLink="false">job/dev-language/226/changes#detail968</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-http-client/log/respect-server.log
</description></item><item><title>#226 Fix compilation/build (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail969</link><guid isPermaLink="false">job/dev-language/226/changes#detail969</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-substatement.json
respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement-multiple-responses.json
respect-lib-test-resources/src/androidMain/assets/xapistatements/appendix-a-long-statement.json
lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement-invalid-response.json
lib-datalayer-repository/build.gradle.kts
respect-lib-test-resources/src/androidMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt
respect-lib-test-resources/src/androidMain/assets/xapistatements/sequencing-response-statement.json
respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-actor.json
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt
lib-datalayer/src/jvmTest/kotlin/world/respect/datalayer/school/xapi/model/XapiStatementSerializationTest.kt
respect-lib-test-resources/src/androidMain/assets/xapistatements/Readme.txt
lib-datalayer/build.gradle.kts
respect-lib-test-resources/src/androidMain/assets/xapistatements/matching-response-statement.json
respect-lib-test-resources/src/androidMain/assets/xapistatements/group-statement.json
respect-lib-test-resources/src/androidMain/assets/xapistatements/likert-response-statement.json
respect-lib-test-resources/src/androidMain/assets/xapistatements/multi-choice-statement.json
lib-xapi-ipc-server/build.gradle.kts
respect-lib-test-resources/src/androidMain/assets/xapistatements/true-false-response-statement.json
respect-lib-test-resources/src/androidMain/assets/xapistatements/simple-statement.json
respect-lib-test-resources/src/androidMain/assets/xapistatements/performance-response-statement.json
respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-statementref.json
</description></item><item><title>#226 Fix compilation/build (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail970</link><guid isPermaLink="false">job/dev-language/226/changes#detail970</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-test/src/androidMain/assets/xapistatements/statement-with-object-statementref.json
lib-xapi-test/src/androidMain/assets/xapistatements/multi-choice-statement-multiple-responses.json
lib-xapi-test/src/androidMain/assets/xapistatements/true-false-response-statement.json
lib-xapi-test/src/androidMain/assets/xapistatements/simple-statement.json
lib-xapi-test/src/androidMain/assets/xapistatements/matching-response-statement.json
lib-xapi-test/src/androidMain/assets/xapistatements/multi-choice-statement-invalid-response.json
lib-xapi-test/src/androidMain/assets/xapistatements/appendix-a-long-statement.json
lib-xapi-test/src/androidMain/assets/xapistatements/sequencing-response-statement.json
lib-xapi-test/src/androidMain/assets/xapistatements/Readme.txt
lib-xapi-test/src/androidMain/assets/xapistatements/statement-with-object-substatement.json
lib-xapi-test/src/androidMain/assets/xapistatements/group-statement.json
lib-xapi-test/src/androidMain/assets/xapistatements/likert-response-statement.json
lib-xapi-test/src/androidMain/assets/xapistatements/performance-response-statement.json
lib-xapi-test/src/androidMain/assets/xapistatements/multi-choice-statement.json
lib-xapi-test/src/androidMain/assets/xapistatements/statement-with-object-actor.json
</description></item><item><title>#226 Use GMTDate for xAPI document timestamps and refactor activity profile HTTP routes (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail971</link><guid isPermaLink="false">job/dev-language/226/changes#detail971</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/xapi/XapiActivityProfileRoute.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/JsonExt.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/datetime/GMTDateExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt
lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocumentByteArrayImpl.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiActivityProfileResourceAssertions.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiActivityProfileDocumentAdapter.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/ext/HttpResponseExt.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt
respect-server/src/main/kotlin/world/respect/server/Application.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentResourceExt.kt
lib-datalayer/README.md
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/datetime/InstantExt.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/ext/HttpRequestBuilderExt.kt
lib-dataloadstate/src/commonTest/kotlin/world/respect/lib/dataloadstate/datetime/NowInEpochSecondsTest.kt
lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiActivityProfileResourceRoute.kt
lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/ext/ApplicationCallExt.kt
lib-datalayer-http-client/AGENTS.md
</description></item><item><title>#226 Update gitignore to ignore logs generated by unit tests running in modules. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail972</link><guid isPermaLink="false">job/dev-language/226/changes#detail972</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.gitignore
</description></item><item><title>#226 Add embedded data source server helper and refactor xAPI HTTP client tests (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail973</link><guid isPermaLink="false">job/dev-language/226/changes#detail973</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementResourceHttpClientTest.kt
lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/WithEmbeddedDataSourceServer.kt
lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiStatementResourceTest.kt
respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/NewLocalDataSource.kt
</description></item><item><title>#226 Remove extra time logging in WithEmbeddedDataSourceServer.kt (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail974</link><guid isPermaLink="false">job/dev-language/226/changes#detail974</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/WithEmbeddedDataSourceServer.kt
</description></item><item><title>#226 Clarify app manifest URL requirements in issue template (noreply)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail975</link><guid isPermaLink="false">job/dev-language/226/changes#detail975</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.github/ISSUE_TEMPLATE/add_app_to_default_catalog.MD
</description></item><item><title>#226 Add conditional if-modified-since GET support for xAPI activity profile resources (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail976</link><guid isPermaLink="false">job/dev-language/226/changes#detail976</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiDocument.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/ETagAndLastModifiedAsStrings.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt
lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ETagAndLastModified.kt
lib-dataloadstate-ktor-server/src/commonMain/kotlin/world/respect/lib/dataloadstate/ktorserver/ApplicationCallExt.kt
lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiActivityProfileResourceRoute.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/HeadersExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/DataLoadMetaInfo.kt
</description></item><item><title>#226 Support ETag validation and SHA-1 caching for xAPI activity profile documents. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail977</link><guid isPermaLink="false">job/dev-language/226/changes#detail977</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/16.json
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiActivityProfileResourceAssertions.kt
lib-dataloadstate-ktor-server/src/commonMain/kotlin/world/respect/lib/dataloadstate/ktorserver/ApplicationCallExt.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/HeadersExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentShaEntity.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiActivityProfileDocumentAndShaEntities.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentShaDao.kt
</description></item><item><title>#226 Add XAPI remote write queue interfaces and move local xAPI resource interfaces to lib-xapi-core (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail978</link><guid isPermaLink="false">job/dev-language/226/changes#detail978</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiAgentsResourceLocal.kt
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivitiesResourceLocal.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/XapiRemoteWriteQueue.kt
lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/WithEmbeddedDataSourceServer.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/util/FileExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/EnqueueDrainXapiRemoteWriteQueueUseCase.kt
lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt
respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/WithEmbeddedDataSourceServer.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiActivityProfileResourceLocal.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiStatementsResourceLocal.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentsResourceDb.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiStatementsResourceLocal.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiResourceLocal.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/WithEmbeddedServerAndRepoClients.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiResourceLocal.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/StringValuesExt.kt
respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/XapiRemoteWriteQueueItem.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivitiesResourceDb.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt
lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStatementResourceHttpClientTest.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiActivitiesResourceLocal.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiAgentsResourceLocal.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/EnqueueDrainRemoteWriteQueueUseCaseChannel.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentExt.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/xapi/XapiActivityProfileResourceLocal.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueXapiUseCase.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
</description></item><item><title>#226 Implement XapiRemoteWriteQueue database storage and repository integration (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail979</link><guid isPermaLink="false">job/dev-language/226/changes#detail979</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/src/main/kotlin/world/respect/AppKoinModule.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/writequeue/XapiRemoteWriteQueueDbImpl.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/EnqueueDrainXapiRemoteWriteQueueUseCase.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiActivityProfileResourceAssertions.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiRemoteWriteQueueItemEntity.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolTypeConverters.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/WithEmbeddedServerAndRepoClients.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt
respect-lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementsResourceRepository.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/XapiRemoteWriteQueueItem.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClient.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiRemoteWriteQueueItemEntityDao.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiRemoteWriteQueueItemAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentExt.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueXapiUseCase.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/ext/DataLoadParamsExt.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpClientExt.kt
</description></item><item><title>#226 Update XapiStatementRepositoryIntegrationTest to use embedded server and repo clients (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail980</link><guid isPermaLink="false">job/dev-language/226/changes#detail980</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/16.json
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/WithEmbeddedServerAndRepoClients.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStatementRepositoryIntegrationTest.kt
</description></item><item><title>#226 Initial working implementation of XapiActivityProfileResourceRepository. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail981</link><guid isPermaLink="false">job/dev-language/226/changes#detail981</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt
</description></item><item><title>#226 Add Android worker and Koin bindings for draining xAPI remote write queue (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail982</link><guid isPermaLink="false">job/dev-language/226/changes#detail982</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/src/main/kotlin/world/respect/AppKoinModule.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainXapiRemoteWriteQueueWorker.kt
lib-datalayer-repository/src/androidMain/kotlin/world/respect/datalayer/repository/school/writequeue/EnqueueDrainXapiRemoteWriteQueueUseCaseAndroidImpl.kt
</description></item><item><title>#226 Update readme references that used to point to respect-app-compose to point to app-android. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail983</link><guid isPermaLink="false">job/dev-language/226/changes#detail983</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-app-compose/README.md
app-android/README.md
README.md
</description></item><item><title>#226 Move Android Studio screenshots to app-android (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail984</link><guid isPermaLink="false">job/dev-language/226/changes#detail984</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/doc/run-config-settings.png
app-android/doc/app-config-dropdown.png
respect-app-compose/doc/run-config-settings.png
respect-app-compose/doc/app-config-dropdown.png
</description></item><item><title>#226 Update screenshots (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail985</link><guid isPermaLink="false">job/dev-language/226/changes#detail985</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/doc/run-config-settings.png
app-android/doc/app-config-dropdown.png
</description></item><item><title>#226 Update screenshots (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail986</link><guid isPermaLink="false">job/dev-language/226/changes#detail986</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/doc/run-config-settings.png
app-android/doc/app-config-dropdown.png
</description></item><item><title>#226 Add profile id doc for storing and retrieving an OPDS collection. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail987</link><guid isPermaLink="false">job/dev-language/226/changes#detail987</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-core/README_OPDS_COLLECTIONS_ACTIVITY_PROFILE.md
lib-xapi-core/README_COLLECTIONS_LISTING_RECIPE.md
</description></item><item><title>#226 Update module naming convention. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail988</link><guid isPermaLink="false">job/dev-language/226/changes#detail988</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt
respect-lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.json
app-server/src/main/resources/http/respect-ds/case_valid/js/xapi_module.js
respect-server/src/main/kotlin/world/respect/server/util/SchoolUrlVerificationManager.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryMode.kt
respect-lib-ihttp-okhttp/.gitignore
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt
respect-app-compose/src/androidMain/res/values/tags.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectBasicAlertDialog.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/ext/MutableStateExt.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getdeviceinfo/GetDeviceInfoUseCaseAndroid.kt
app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCase.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryDao.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NeighborCache.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/RequestExt.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/tincan.xml
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroption/OtherOptionsScreen.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCaseAndroid.kt
lib-shared/src/commonMain/composeResources/drawable/ic_google_play_badge.png
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RememberCountryFlagEmoji.kt
app-server/src/main/kotlin/world/respect/server/logging/LogbackAntilog.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/StringBuilderExt.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/ext/FileExt.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/IHttpResponse.kt
respect-app-compose/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetActivePersonPasskeysUseCaseClient.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavCommand.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiTextGetString.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CachePathsProvider.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidateLinkUseCase.kt
respect-lib-cache/.gitignore
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/logging/UstadCacheLogger.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/LangMapExt.kt
respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/17.json
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/icon.png
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessChecker.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt
app-server/src/main/kotlin/world/respect/server/routes/RespectSchoolJsonRoute.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/OfflineStorageOption.kt
lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCaseWorker.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/MimeTypeHelperExt.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/UstadCacheDbExt.kt
respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddSchoolDirectoryCallback.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/logging/NapierLoggingAdapter.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/EncodeUserHandleUseCaseImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/ReportViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCase.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/CacheResponse.kt
respect-credentials/src/main/AndroidManifest.xml
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/sharefeedback/ShareFeedbackScreen.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMap.kt
lib-appui-compose/src/androidMain/res/drawable/digital_library.png
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListItem.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt
app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/README.md
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/launch.html
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/login/LoginScreen.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StoreProgressListener.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt
lib-appui-compose/src/jvmMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt
app-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasswordRoute.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDirectoryEntryScopeId.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt
respect-lib-serializers/build.gradle.kts
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/passkeyList/PasskeyListScreen.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaderImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/onboarding/ShouldShowOnboardingUseCase.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/partial/ContentRangeTest.kt
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/URLProtocolExt.kt
respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantISO8601Serializer.kt
respect-app-compose/src/androidMain/kotlin/world/respect/app/components/webview/UstadAbstractWebViewClient.kt
respect-server/src/main/resources/application.conf
lib-opds-model/build.gradle.kts
respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_not_discoverable/grade1/lesson001/script.js
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ClearNeighborsCallback.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NewCacheEntryDao.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/RespectAccountExt.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithTextBody.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityChecker.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentStatusFilter.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/FileSystemCommonExt.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/passkeylist/PasskeyListViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePacket.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/RespectAsyncImage.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMapping.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt
lib-credentials/proguard-rules.pro
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HeaderOverrideHttpResponse.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/GetAndroidSdCardDirUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageOptionsUseCase.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.kt
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/CoroutineWorkerExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/howpasskeywork/HowPasskeyWorksViewModel.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImpl.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.html
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/CouponHeader.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchShareLinkAndroid.kt
lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt
app-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/InputStreamExt.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/partial/ContentRange.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt
respect-lib-ihttp-iostreams/src/commonMain/kotlin/com/ustadmobile/ihttp/iostreams/ByteArrayExt.kt
lib-cache/README.md
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashEntries.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/LICENSE
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt
app-server/src/main/resources/demoapp/learning_unit_xapi.js
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/base64.js
respect-app-compose/src/commonMain/kotlin/world/respect/app/effects/NavControllerLogEffect.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/exception/ExceptionWithUiText.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NextAfterScan.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getdeviceinfo/DeviceInfoExt.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NeighborCacheEntryDao.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/filterusername/FilterUsernameUseCase.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationResponseJSON.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/DatabaseExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/partial/RangeRequestNotSatisfiableException.kt
lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/request/HttpRequestOkHttpAdapter.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectPasskeySignInFasterCard.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/directives/DirectivesToMap.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/RunReportResultAndFormatters.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkProperties.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheNeighborDiscoveryListener.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/LICENSE
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/edit/IndicatorEditScreen.kt
respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCaseAndroidImpl.kt
lib-cache/src/jvmTest/resources/testfile1.png
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectDateField.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/usagereporting/SetUsageReportingEnabledUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/FileMimeTypeHelperImpl.kt
app-server/src/main/kotlin/world/respect/server/routes/username/checkusernameunique/CheckUsernameUniqueRoute.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/JsonObjectExt.kt
lib-appui-compose/src/androidMain/res/values/asset_statements.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPhoneNumberTextField.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/termsandcondition/TermsAndConditionViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetActivePersonPasskeysUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipsHeader.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CreateGraphFormatterUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/DefaultCacheCompressionFilter.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/edit/SchoolDirectoryEditScreen.kt
respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesFromPropertiesUseCase.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialParameters.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/EnrollmentRoleEnumExt.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalTimeField.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt
respect-server/src/main/resources/demoapp/xapi_module.js
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheConstants.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/qrcode/InviteQrScreen.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/http/DistributedCacheHttpEndpoint.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/permissions/CheckSchoolPermissionsUseCase.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/OkCallExt.kt
lib-cache/src/jvmTest/resources/childrens-literature.epub
app-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt
respect-app-compose/src/androidMain/res/drawable/data_reporting.png
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/RetentionLockDao.kt
respect-app-compose/src/androidMain/res/xml/backup_rules.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt
lib-ihttp-core/README.md
lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeader.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDataSourceLocalProvider.kt
respect-lib-cache/src/jvmTest/resources/testfile2.png
lib-shared/build.gradle.kts
lib-appui-compose/src/androidMain/res/xml/data_extraction_rules.xml
respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/icon.png
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/LoadingUiState.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CacheEntryToStore.kt
lib-cache/build.gradle.kts
lib-shared/src/commonMain/composeResources/values/lang_names.xml
respect-lib-shared/src/commonTest/resources/invalid-catalog.json
respect-lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/PrimaryKeyGenerator.kt
lib-appui-compose/src/jvmMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.desktop.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/AppUiStateExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/onboarding/OnboardingViewModel.kt
README.md
lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/LocalDateOrDateTime.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/usagereporting/SetUsageReportingEnabledUseCaseAndroid.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterinvitecode/EnterInviteCodeViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/tincan.xml
lib-appui-compose/src/androidMain/kotlin/world/respect/app/components/webview/UstadAbstractWebViewClient.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/App.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ChannelExt.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryExtraHeadersDao.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumberAndroid.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/RequestedEntryDao.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMapExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/usagereporting/GetUsageReportingEnabledUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateField.kt
lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/webview/OkHttpWebViewClient.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/MockRunReportUseCaseClientImpl.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidatorMessage.kt
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityCheckerImplTest.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiTextGetString.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-up.gif
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/LoadAaguidJsonUseCase.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtable.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedTime.android.kt
app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt
lib-datalayer-repository/build.gradle.kts
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/app/components/BasicWebView.android.kt
respect-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/directory/RespectDirectoryServersConfig.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/devmode/SetDevModeEnabledUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/model/SpdxLicense.kt
lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCase.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/PinnedPublication.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/RequestExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/OpenExternalLinkUseCaseAndroid.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCase.kt
respect-lib-cache/src/jvmTest/resources/publication/lesson001/video.mp4
respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_not_discoverable/grade1/lesson001/video.mp4
respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/SingleItemToListTransformerSerializer.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt
respect-app-compose/src/androidMain/res/values/themes.xml
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheTrimmer.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppBarSearchUiState.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCaseAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/usagereporting/GetUsageReportingEnabledUseCaseAndroid.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPagingItems.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/signup/SignupCredential.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HttpHeadersImpl.kt
lib-opds-model/src/jvmTest/resources/lesson001.json
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterinvitecode/EnterInviteCodeViewModel.kt
respect-server/well-known/assetlinks.json
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ListAndPrintlnValidatorReporter.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/DecodeUserHandleUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/FilterChipsOption.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CachedResponseStatus.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AccountDepComponent.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/index.html
lib-ihttp-iostreams/src/commonMain/kotlin/com/ustadmobile/ihttp/iostreams/NullOutputStream.kt
respect-server/src/main/kotlin/world/respect/server/util/ext/ExceptionExtensions.kt
app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolLinkRoute.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadJobItemStatusUpdater.kt
respect-credentials/proguard-rules.pro
respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCaseAndroid.kt
respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HeadersBuilderExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageOptionsUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonRoleEnumExt.kt
app-server/src/main/kotlin/world/respect/server/ServerAccountScopeManager.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCache.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jstetris.json
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSession.kt
app-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthProcessor.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/edit/CurriculumMappingEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/StatementDetailViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseDb.kt
lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/IHttpResponseOkHttpAdapter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt
respect-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppBarSearchUiState.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskListItem.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheNeighborDiscoveryListener.kt
app-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/logging/UstadCacheLogger.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onaccountcreated/NavigateOnAccountCreatedUseCase.kt
app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt
lib-appui-compose/src/androidMain/res/xml/backup_rules.xml
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/EncodeUserHandleUseCase.kt
respect-app-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/E2EArtifactUploadActivity.kt
respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantAsISO8601Extensions.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ChannelExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/respectappmanifest/model/RespectSite.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/MakeSchoolPathDirUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/validateusername/ValidateUsernameUseCase.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/onboarding/OnboardingScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/RespectSchoolPath.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectOfflineItemStatusIcon.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitor.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/RevokePasskeyUseCaseClient.kt
app-server/src/main/kotlin/world/respect/server/routes/passkey/RevokePasskeyRoute.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSection.kt
lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.json
lib-credentials/build.gradle.kts
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HttpHeadersExt.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/UstadExposedDropDownMenuField.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumber.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/AddNewEntryTriggerCallback.kt
lib-credentials/.gitignore
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppActionButton.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadJobItemStatusUpdater.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLazyItems.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolPermissionGrantRoute.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DurationGraphFormatter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSection.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/ModifierExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/AddBookmarkUseCase.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/app/app/AppIcon.android.kt
app-server/src/main/kotlin/world/respect/server/routes/AuthRoute.kt
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/http/DistributedCacheHttpEndpointTest.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/devmode/GetDevModeEnabledUseCase.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityChecker.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/ApproveOrDeclineInviteRequestUseCase.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HttpHeaderListExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/StringResourceExt.kt
lib-ihttp-core/build.gradle.kts
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialRequestOptionsJsonUseCase.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortHeader.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentNameCell.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitor.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HttpHeadersExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialRequestOptionsJsonUseCase.kt
respect-server/src/main/resources/http/respect-ds/index.html
respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/RespectImageSelectButton.desktop.kt
lib-ihttp-nanohttpd/src/commonMain/kotlin/com/ustadmobile/ihttp/nanohttpd/NanoHttpdResponseAdapter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/model/SpdxLicenseList.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectCredential.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/CacheResponse.kt
respect-app-compose/src/commonMain/kotlin/theme/Theme.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/DevModeClickable.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/ClientDataJSON.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLink.kt
respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/request/OkHttpRequestAdapter.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatter.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/onboarding/OnboardingViewModel.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/icon.png
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationPrepareUseCase.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectCredential.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectTokenManager.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RespectComposeNavController.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/usagereporting/GetUsageReportingEnabledUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/UsernameSuggestionUseCase.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/edit/CurriculumMappingEditScreen.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/util/StringExt.android.kt
respect-lib-primarykeygen/src/androidMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.android.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/AlternativeLangLinks.kt
lib-appui-compose/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png
lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOption.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListItem.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/unit.json
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/DevModeClickable.kt
app-server/src/main/kotlin/world/respect/server/Application.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroption/OtherOptionsScreen.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/account/passkey/LoadAaguidJsonUseCaseAndroid.kt
lib-ihttp-okhttp/src/commonMain/AndroidManifest.xml
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaderImpl.kt
app-server/src/main/kotlin/world/respect/server/routes/school/respect/RedeemInviteRoute.kt
lib-cache/src/jvmTest/resources/publication/lesson001/video.mp4
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityCheckerImpl.kt
lib-ihttp-nanohttpd/.gitignore
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5Digest.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorAssertionResponseJSON.kt
lib-appui-compose/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearch.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthManager.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RequestedEntry.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/integrity/Sha256Integrity.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSession.kt
lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantAsISO8601Extensions.kt
respect-lib-shared/src/commonMain/composeResources/drawable/ic_google_play_badge.png
respect-app-compose/src/androidMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.android.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/DbTypeConverters.kt
respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringOrObjectSerializer.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RequestedEntry.kt
app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolValidationRoute.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/RevokePasskeyUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumUseCase.kt
lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/request/OkHttpRequestAdapter.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CachedResponseStatus.kt
app-server/src/dist/systemd/respect-server.service
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectQuickActionButton.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt
respect-lib-ihttp-iostreams/.gitignore
respect-server/src/main/kotlin/world/respect/server/routes/passkey/VerifySignInWithPasskeyRoute.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCaseAndroidImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt
lib-shared/src/commonMain/composeResources/drawable/fingerprint.png
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/GetAndroidSdCardDirUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCaseAndroid.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtable.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/MimeTypeHelperExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/LongExtCommon.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCase.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.android.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/RememberDayOrDate.kt
lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt
respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.desktop.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt
respect-lib-ihttp-iostreams/build.gradle.kts
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/RequestedEntryDao.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticateQrBadgeUseCase.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.android.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumContributorObject.kt
respect-app-compose/src/commonMain/kotlin/theme/Color.kt
respect-lib-shared/src/commonMain/composeResources/drawable/fingerprint.png
lib-appui-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.android.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StringExt.kt
lib-appui-compose/src/jvmMain/resources/sample-feed.json
respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/headers/IHttpHeadersAsOkHttpHeadersAdapter.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CacheEntryToStore.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.css
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRpEntity.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CountGraphFormatter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/DurationExt.kt
app-server/well-known/assetlinks.json
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/launch.html
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheConstants.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeadersExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RetentionLock.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/DecodeUserHandleUseCaseImpl.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/composites/NeighborCacheEntryAndNeighborCache.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/UrlParser.kt
lib-cache/src/androidMain/AndroidManifest.xml
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsPRFOutputsJSON.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/MakeSchoolPathDirUseCaseAndroid.kt
respect-app-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt
lib-ihttp-nanohttpd/build.gradle.kts
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturnerImpl.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jquery-1.6.4.min.js
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOptionExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/accountlist/AccountListViewModel.kt
lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/UriStringSerializer.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt
respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_resources_do_not_exist/grade1/lesson001/lesson001.html
respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationResponseExt.kt
app-cli/src/main/java/world/respect/clitools/RespectCLI.kt
app-server/src/main/resources/http/respect-ds/case_valid/app.html
respect-server/src/main/kotlin/world/respect/server/routes/username/checkusernameunique/CheckUsernameUniqueRoute.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLongVersionInfoItem.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/AppStateIconExtensions.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateInviteLinkUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsBelongsTo.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/clipboard/SetClipboardStringUseCase.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryExtraHeaders.kt
lib-shared/AGENTS.md
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/SnackBarDispatcher.kt
respect-server/src/main/resources/demoapp/credits.txt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/StringBuilderExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/copycode/CopyInviteCodeScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/StringResourceExt.kt
respect-lib-ihttp-core/README.md
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePacket.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NewFileFromResource.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/changepassword/ChangePasswordScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/LicenseLabelEntry.kt
respect-app-compose/src/androidMain/res/drawable/spix_logo.webp
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashCacheEntry.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/ByteArrayResponse.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LocalAppLocale.kt
respect-app-compose/src/androidMain/res/drawable/ic_launcher.xml
app-server/src/main/resources/http/respect-ds/native_demo/index.json
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthProcessor.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/audio.ogg
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppStateIcon.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/InviteExt.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithTextBody.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.html
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RememberAppVersionInfo.kt
app-server/src/main/kotlin/world/respect/server/util/ext/ParametersExt.kt
lib-appui-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.desktop.kt
app-server/well-known/terms.html
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/ByteArrayExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/detail/ReportDetailScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/PublicationListItem.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/MockRunReportUseCaseClientImpl.kt
lib-appui-compose/src/androidMain/res/drawable/baseline_close_24.xml
respect-app-compose/src/androidMain/res/xml/data_extraction_rules.xml
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobItemDao.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/SizeClass.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/FabUiState.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/app/domain/e2eartifactupload/E2EArtifactUploadActivity.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/DemoStringMaps.kt
respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseJvm.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolAppRoute.kt
app-server/src/main/kotlin/world/respect/server/routes/passkey/GetAllActivePasskeysRoute.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJobItem.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-up.gif
respect-server/src/main/resources/http/respect-ds/case_valid/icon.png
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/login/LoginViewModel.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RememberAppVersionInfo.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt
respect-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedDate.android.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCase.kt
lib-shared/src/commonMain/composeResources/drawable/empty.png
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumContributorObject.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GraphFormatter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/StringExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/RespectAccountScopeId.kt
app-android/build.gradle.kts
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/clipboard/SetClipboardStringUseCaseAndroid.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDateField.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/usagereporting/SetUsageReportingEnabledUseCase.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRequestOptionsJSON.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/acknowledgement/AcknowledgementScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/LoadAaguidJsonUseCase.kt
respect-server/src/main/resources/http/respect-ds/native_demo/appmanifest.json
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/VerifyDomainUseCase.kt
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/downloader/DownloadIntegrationTest.kt
respect-cli/build.gradle.kts
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFacet.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AuthResponse.kt
respect-lib-ihttp-okhttp/proguard-rules.pro
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/copycode/CopyInviteCodeViewModel.kt
respect-server/src/main/kotlin/world/respect/server/routes/username/UsernameSuggestionRoute.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCase.kt
respect-lib-shared/src/commonMain/composeResources/values/lang_names.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt
lib-dataloadstate-ktor-server/build.gradle.kts
lib-ihttp-core/src/jsMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.js.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/OpenExternalLinkUseCaseAndroid.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCase.kt
respect-app-compose/src/androidMain/res/drawable/ic_launcher_background.xml
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePong.kt
lib-appui-compose/src/androidMain/res/layout/activity_web_view.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDataSourceLocalProvider.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCase.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/GetPasskeyProviderInfoUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/VerifyDomainUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/RemoveBookmarkUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/LongExtCommon.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/ByteArrayResponse.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationResponseJSON.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt
respect-app-compose/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/enterlink/EnterLinkViewModel.kt
lib-appui-compose/src/androidMain/res/drawable/data_reporting.png
app-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectShortVersionInfoText.kt
app-server/src/main/resources/http/respect-ds/case_valid/icon.png
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/2.5.3-crypto-sha1.js
respect-lib-ihttp-okhttp/consumer-rules.pro
lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/headers/IHttpHeadersAsOkHttpHeadersAdapter.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectUserHandle.kt
respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_module.js
respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseAndroidChannelHost.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/filterusername/FilterUsernameUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/CustomDeepLinkToUrlUseCase.kt
lib-opds-model/src/jvmTest/kotlin/world/respect/lib/opds/model/OpdsSerializerTest.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAssignmentExt.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ClearNeighborsCallback.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/ReportViewModel.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentNameCell.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/waitingforapproval/WaitingForApprovalScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentListScreenFilter.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/util/ext/IntExt.kt
app-server/src/main/resources/http/respect-ds/manifestlist.json
lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/RespectAccountScopeId.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/DurationExt.kt
respect-app-compose/src/androidMain/res/values/asset_statements.xml
respect-lib-opds-model/src/jvmTest/resources/lesson001.json
app-server/src/main/kotlin/world/respect/server/routes/e2etestartifactsroute/E2ETestArtifactsRoute.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolDbPath.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/viewmodel/RespectViewModelFun.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSectionLink.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/NOTICE
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetPasskeyProviderInfoUseCaseImpl.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseDatabaseImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ActionBarButtonUiState.kt
respect-lib-shared/src/commonMain/composeResources/drawable/copycode.png
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/DateFormatterExt.kt
app-server/src/main/resources/http/respect-ds/native_demo/Lesson-manifest.json
app-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasskeyRoute.kt
app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-space.gif
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePing.kt
respect-lib-cache/README.md
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneNumberVisualTransformation.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetActivePersonPasskeysUseCaseClient.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jquery-1.6.4.min.js
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/LangMapTextField.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/images/RespectImage.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectPhoneNumberTextField.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt
app-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteInfoRoute.kt
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/distributed/LifeCycleOwnerDistributedCacheInit.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/StatementDetailScreen.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/launchable-app.json
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasskeyRoute.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt
lib-ihttp-nanohttpd/src/commonMain/kotlin/com/ustadmobile/ihttp/nanohttpd/NanoHttpdRequestAdapter.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsGroup.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/icon.png
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkProperties.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GraphFormatter.kt
app-cli/.gitignore
respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.desktop.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/IHeaderExt.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.css
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
app-server/src/main/kotlin/world/respect/server/routes/qrcode/PersonQrBadgeRoute.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/cover.png
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithByteBody.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/DayOfWeekExt.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRpEntity.kt
app-server/src/main/kotlin/world/respect/server/domain/school/verify/VerifySchoolUrlPointsToThisServerUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validateemail/ValidateEmailUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/permissions/CheckSchoolPermissionsUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/ByteArrayResponse.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.js
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorAndroid.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/ExpandableFab.kt
respect-server/src/main/kotlin/world/respect/server/routes/passkey/GetAllActivePasskeysRoute.kt
respect-app-compose/src/androidMain/kotlin/world/respect/app/components/BasicWebView.android.kt
app-server/src/main/kotlin/world/respect/server/routes/passkey/VerifySignInWithPasskeyRoute.kt
respect-app-compose/src/commonMain/kotlin/theme/CommonColor.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/devmode/SetDevModeEnabledUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendEmailUseCase.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheTrimmerTest.kt
respect-lib-shared/src/commonTest/resources/opds-io-home.json
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessChecker.kt
lib-opds-model/README_LAUNCHABLE_APP.md
respect-lib-ihttp-okhttp/src/commonMain/AndroidManifest.xml
app-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteCreateRoute.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateField.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/StringResponse.kt
lib-dataloadstate/build.gradle.kts
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCaseClient.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.js
lib-appui-compose/src/androidMain/res/xml/file_paths.xml
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/ResourcesDispatcher.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/effects/NavControllerLogEffect.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppBar.kt
respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/15.json
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/qrcode/InviteQrViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidatorReporter.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/clipboard/SetClipboardStringUseCase.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPrice.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashEntries.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtilExt.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HttpPathResponse.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/FabUiState.kt
lib-shared/src/commonMain/composeResources/drawable/compose-multiplatform.xml
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/password/SavePasswordUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectShortVersionInfoText.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashEntriesTest.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NeighborCacheEntry.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOption.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroptionsignup/OtherOptionsSignupScreen.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/RetentionLock.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCase.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/StringExt.kt
app-server/src/main/kotlin/world/respect/server/util/ext/ApplicationResponseExt.kt
lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/CoroutineWorkerExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NavCommandExt.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/ModifierExt.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/MapExt.kt
respect-lib-opds-model/README.md
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectPersonAvatar.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/detail/PersonDetailViewModel.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/BaseHttpRequest.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturner.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsAcquisition.kt
respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_not_discoverable/grade1/lesson001/cover.png
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt
lib-datalayer-db/README.md
respect-server/src/main/kotlin/world/respect/server/routes/AuthRoute.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/exception/ExceptionWithUiText.kt
respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolJsonRoute.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/validator/HttpClientExt.kt
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NewFileFromResource.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/directory/RespectDirectoryServersConfig.kt
lib-appui-compose/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.png
lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/headers/OkHttpHeadersAdapter.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendSmsAndroid.kt
lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.html
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeedMetadata.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/DecodeUserHandleUseCaseImpl.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublication.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedTime.android.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReportExtensions.kt
respect-app-compose/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/UrlNormalizeForNoVarySearch.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt
respect-lib-shared-se/README.md
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HttpPathResponse.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJob.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJobItemStatus.kt
app-server/src/main/resources/application.conf
respect-server/src/main/resources/http/respect-ds/case_valid/index.json
app-server/src/main/resources/demoapp/index.html
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/README.md
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImplTest.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RouteWithResultDest.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesFromPropertiesUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/Platform.kt
app-server/build.gradle.kts
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseValidityChecker.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/URLProtocolExt.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt
respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringListSerializer.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/RevokePasskeyUseCase.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NewCacheEntryDao.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AuthResponse.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/StringResponse.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-down.gif
respect-lib-ihttp-nanohttpd/.gitignore
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/util/RememberDayOrDate.kt
respect-lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-ihttp-iostreams/src/commonMain/kotlin/com/ustadmobile/ihttp/iostreams/NullOutputStream.kt
respect-lib-serializers/README.md
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HttpHeadersImpl.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateauth/ValidateAuthorizationUseCase.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/inviteperson/InvitePersonScreen.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/termsandcondition/TermsAndConditionScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/OfflineStorageOption.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiResourceProviderAndroid.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectBottomSheetOption.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialCreationOptionsJSON.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ByteBufferExt.kt
lib-shared-se/build.gradle.kts
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/OutputStreamExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/AppUiStateExt.kt
app-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-left.gif
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/MimeTypeHelper.kt
respect-app-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/IHttpResponse.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/XXStringHasherExt.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectOfflineItemStatusIcon.kt
respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_not_discoverable/grade1/lesson001/audio.ogg
respect-app-compose/src/androidMain/res/values/strings.xml
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/otheroptionsignup/OtherOptionsSignupScreen.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CacheStorageCompressionFilter.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryMode.kt
respect-lib-ihttp-nanohttpd/src/commonMain/kotlin/com/ustadmobile/ihttp/nanohttpd/NanoHttpdRequestAdapter.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
lib-appui-compose/src/androidMain/res/menu/menu_webview.xml
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getfavicons/GetFavIconUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/list/AssignmentListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AvatarColorForName.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/RespectAccountExt.kt
respect-app-compose/src/androidMain/res/menu/menu_webview.xml
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorAndroid.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/Greeting.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCaseImpl.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListItem.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtilExt.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityCheckerImplTest.kt
respect-lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/index.json
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/enterlink/EnterLinkScreen.kt
lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/OkHttpResponseAdapter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectSessionAndPerson.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CheckPasskeySupportUseCaseAndroidImpl.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppBarColors.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeedMetadata.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptor.kt
respect-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/DistributedCacheInterceptor.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/howpasskeywork/HowPasskeyWorksScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtil.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ext/ReadiumLinkExt.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCaseAndroid.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/CreateAccountSetPasswordScreen.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkPropertiesEncrypted.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/AppIcon.kt
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NapierLogInit.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCaseClient.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageSettingUseCase.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/PinnedPublication.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLink.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/FileSystemExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/acceptinvite/AcceptInviteViewModel.kt
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseAndroid.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/model/SpdxLicenseList.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt
lib-appui-compose/src/androidMain/res/drawable/respect_logo.webp
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseClient.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/clipboard/SetClipboardStringUseCaseAndroid.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/CacheEntryExt.kt
lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/ext/InstantExt.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/RangeInputStream.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt
lib-appui-compose/src/jvmMain/kotlin/world/respect/app/app/AppIcon.desktop.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeader.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublicationExt.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPublication.kt
respect-app-compose/build.gradle.kts
app-server/src/main/kotlin/world/respect/server/account/invite/username/checkusernameunique/CheckUsernameUniqueUseCaseServer.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/date/ParseHttpDate.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageSettingUseCase.kt
lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/SingleItemToListTransformerSerializer.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/di/SchoolDirectoryEntryScopeId.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailHeaderCell.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getwarnings/GetWarningsUseCase.kt
lib-primarykeygen/src/jvmTest/kotlin/world/respect/lib/primarykeygen/DoorPrimaryKeyGeneratorTest.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCaseDb.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/scanqrcode/ScanQRCodeViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/respectaccount/list/RespectAccountListViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GenderGraphFormatter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/ext/DateFormatterExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectQrBadgeInfoBox.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/ResourcesDispatcher.kt
lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/SourceExt.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumberUseCaseAndroid.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getwarnings/GetWarningsUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getfavicons/GetFavIconUseCase.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumLinkPropertiesEncrypted.kt
respect-lib-shared/src/commonMain/resources/directories/default.properties
respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/VerifyDomainUseCaseImpl.kt
respect-lib-primarykeygen/src/jvmTest/kotlin/world/respect/lib/primarykeygen/DoorPrimaryKeyGeneratorTest.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCacheWhatWithIdAndPayload.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsClientOutputsJSON.kt
lib-datalayer/AGENTS.md
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialDescriptorJSON.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt
respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/DurationAsISO8601Serializer.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CompressionType.kt
app-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/ext/replace.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/BaseHttpRequest.kt
respect-server/src/main/resources/demoapp/locales/fr-FR.json
respect-credentials/.gitignore
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/detail/ReportDetailScreen.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/ClassRoute.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.kt
app-server/src/main/kotlin/world/respect/server/demoapp/ext/DemoAppUrlExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/CurriculumMappingAdapter.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/verify/VerifySchoolUrlPointsToThisServerUseCase.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/KtorIHeadersAdapter.kt
respect-server/src/main/resources/http/respect-ds/case_valid/icon.webp
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCase.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectBottomSheetOption.kt
respect-server/well-known/terms.html
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCase.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialDescriptorJSON.kt
respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/IHttpResponseOkHttpAdapter.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryAndMetadata.kt
respect-app-compose/src/androidMain/res/drawable/works_offline.png
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/composites/NeighborCacheEntryAndNeighborCache.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonGenderEnumExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getwarnings/GetWarningsUseCaseAndroid.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/changepassword/ChangePasswordScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheTrimmer.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/TransferJobItemStatus.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/apps/enterlink/EnterLinkScreen.kt
lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json
lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/PrimaryKeyGenerator.kt
app-server/src/main/kotlin/world/respect/server/SchoolConfig.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetPasskeyProviderInfoUseCaseImpl.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJobItem.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturner.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.kt
respect-lib-shared/src/commonMain/composeResources/drawable/undraw_qr_code_scan_bewe.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCaseClient.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseValidityChecker.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/Validator.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StringExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDataLoadHost.kt
lib-shared/src/androidMain/kotlin/world/respect/Platform.android.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/LaunchDebouncer.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtilAndroid.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumUseCase.kt
lib-cache/src/jvmTest/resources/ustadmobile-epub.js
respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddServerManagedDirectoryCallback.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/UsernameSuggestionUseCase.kt
respect-lib-cache/src/jvmTest/resources/publication/lesson001/cover.png
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validateemail/ValidateEmailUseCase.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaders.kt
lib-appui-compose/src/androidMain/res/drawable/ic_launcher.xml
lib-opds-model/README.md
respect-app-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesMigration.kt
respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseProcessor.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatter.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorAssertionResponseJSON.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RespectComposeNavController.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/CouponHeader.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/MakeSchoolPathDirUseCaseAndroid.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/login/LoginScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppBarColors.kt
lib-appui-compose/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml
respect-lib-ihttp-iostreams/README.md
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt
respect-server/src/main/kotlin/world/respect/server/routes/qrcode/PersonQrBadgeRoute.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsFeedExt.kt
respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroption/OtherOptionsViewModel.kt
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheJvmTest.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/ext/AppStateIconExtensions.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCase.kt
lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/15.json
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCaseClient.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/passkeylist/PasskeyListViewModel.kt
app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppCollectionUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/SnackBarDispatcherUseCaseExt.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/StatementDetailScreen.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CachePathsProvider.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt
app-server/src/main/resources/http/respect-ds/index.html
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/replace.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/XapiLaunchParams.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePing.kt
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/FileAssert.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReportExtensions.kt
lib-cache/.gitignore
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-right.gif
lib-shared/src/commonMain/kotlin/world/respect/shared/ext/RouteWithResultDestExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCaseClient.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RespectRedeemInviteRequest.kt
app-server/src/main/kotlin/world/respect/server/account/invite/GetInviteInfoUseCaseServer.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryDao.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCaseAndroid.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/enterpasswordsignup/EnterPasswordSignUpViewModel.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/AppNavHost.kt
respect-server/src/main/kotlin/world/respect/server/SchoolConfig.kt
respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorJvm.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/toPerson.kt
respect-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialParameters.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumberAndroid.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/devmode/GetDevModeEnabledUseCase.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/AccountDepComponent.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolRegistrationRoute.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/edit/EnrollmentEditScreen.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/DownloadJob.kt
app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/SaveDemoAppToStaticFilesUseCase.kt
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt
lib-cache/src/jvmTest/resources/testfile2.png
lib-appui-compose/src/commonMain/kotlin/theme/CommonColor.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntry.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/edit/CurriculumMappingEditScreen.kt
respect-app-compose/src/androidMain/res/mipmap-mdpi/ic_launcher_round.png
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ListAndPrintlnValidatorReporter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/model/RunReportResultAndFormatters.kt
lib-appui-compose/src/androidMain/res/values/themes.xml
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/util/StringExt.kt
respect-app-compose/src/jvmMain/resources/sample-feed.json
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateTimeField.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectFilterChipsHeader.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/home/HomeScreen.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterinvitecode/EnterInviteCodeScreen.kt
lib-appui-compose/src/androidMain/res/drawable/assignments.png
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MergedHeaders.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/base64.js
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CheckPasskeySupportUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/EnrollmentRoleEnumExt.kt
lib-credentials/src/main/AndroidManifest.xml
app-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatterAdapterAndroid.kt
respect-app-compose/src/androidMain/res/xml/file_paths.xml
respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CheckPasskeySupportUseCaseAndroidImpl.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ActionBarButtonUiState.kt
respect-server/src/main/resources/http/respect-ds/native_demo/Lesson-manifest.json
app-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CacheStorageCompressionFilter.kt
respect-app-compose/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithFormUrlEncodedData.kt
respect-server/src/main/kotlin/world/respect/server/account/invite/username/UsernameSuggestionUseCaseServer.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportTemplateListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/CreateAccountSetPasswordScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/detail/IndicatorDetailScreen.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.android.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/RespectSchoolPath.kt
app-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectQuickActionButton.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/RawStatementScreen.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/ValidatedEntry.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/launcher/AppLauncherViewModel.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/CheckPasskeySupportUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt
respect-server/src/main/kotlin/world/respect/server/AppConfigExt.kt
respect-lib-shared/src/commonMain/resources/about-credits-common.html
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturnerImpl.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/partial/ContentRange.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/scanqrcode/ScanQRCodeScreen.kt
lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortOptionsBottomSheet.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createclass/CreateClassUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/changepassword/ChangePasswordViewModel.kt
app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitTinCanXmlUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/LangMapTextField.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/Snack.kt
lib-ihttp-okhttp/consumer-rules.pro
respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/util/StringExt.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/edit/PersonEditScreen.kt
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/PinPublicationPrepareUseCaseWorker.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RememberCountryFlagEmoji.kt
respect-lib-cache/src/jvmTest/resources/testfile1.png
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/migrations/UstadCacheDbMigrations.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/appversioninfo/GetAppVersionInfoUseCase.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/UiTextStringResource.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCaseAndroid.kt
respect-app-compose/src/androidMain/res/values-night/themes.xml
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/edit/ReportEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/ExpandableFab.kt
respect-server/src/main/kotlin/world/respect/server/routes/RespectSchoolDirectoryRoute.kt
app-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StoreResult.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectBasicAlertDialog.kt
lib-datalayer-http-client/AGENTS.md
respect-app-compose/src/androidMain/res/drawable-v24/ic_launcher_foreground.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCaseImpl.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/partial/RangeRequestNotSatisfiableException.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/RequestCacheControlHeader.kt
respect-app-compose/src/androidMain/res/values-v23/themes.xml
lib-cache/src/jvmTest/resources/publication/lesson001/cover.png
respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/request/HttpRequestOkHttpAdapter.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PasskeyVerifyResult.kt
respect-server/src/main/kotlin/world/respect/server/routes/passkey/RevokePasskeyRoute.kt
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheHashtableIntegrationTest.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectEmptyListComponent.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/FileAssert.kt
respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/response/OkHttpResponseAdapter.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ConcurrentSafeMapOf.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClazzDetailScreen.kt
lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/AddBookmarkUseCase.kt
lib-shared/src/commonMain/resources/about-credits-common.html
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/StringResponse.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/openexternallink/OpenExternalLinkUseCase.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/StringExt.android.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderNormalizeForNoVarySearch.kt
lib-shared-se/README.md
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImplTest.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/EncodeUserHandleUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/VerifyPasskeyUseCase.kt
respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt
app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolAppRoute.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/integrity/Sha256Integrity.kt
app-server/src/main/kotlin/world/respect/server/util/SchoolUrlVerificationManager.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-down.gif
lib-shared/src/commonTest/resources/invalid-catalog.json
lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringValue.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectGenderExposedDropDownMenuField.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/KClassStringSerializer.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/CacheEntryExt.kt
respect-server/src/main/kotlin/world/respect/server/util/ext/ParametersExt.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearch.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/DecodeUserHandleUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/SortOrderOptionExt.kt
respect-server/src/main/resources/demoapp/grade.jpg
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountSchoolScopeLink.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaderExt.kt
app-server/src/main/resources/http/respect-ds/base.json
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/DbTypeConverters.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/SizeClass.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLongVersionInfoItem.kt
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumMetadata.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CachePaths.kt
lib-ihttp-core/.gitignore
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/validator/HttpClientExt.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/index.html
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/UrlBuilderApplyNoVarySearchTest.kt
respect-server/src/main/resources/http/respect-ds/case_valid/js/xapi_assignable_unit.js
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/LocalAppLocale.kt
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/ByteArrayExt.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/setusernameandpassword/SetUsernameAndPasswordScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsFeedExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/RespectAsyncImage.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/RangeInputStream.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/edit/ClazzEditScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/CreateInviteUseCase.kt
lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/connectivitymonitor/ConnectivityMonitorJvm.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidatorReporter.kt
lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/InstantISO8601Serializer.kt
respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseAndroidImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/XapiAppListingExt.kt
lib-shared/src/commonMain/composeResources/values/strings.xml
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HeaderOverrideHttpResponse.kt
respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestJvm.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturnerExt.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PasskeyVerifyResult.kt
app-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMappingSectionLink.kt
app-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppManifestRoute.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/add/RegisterSchoolUseCase.kt
respect-server/src/main/kotlin/world/respect/server/ServerAppMain.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/MakeSchoolPathDirUseCase.kt
lib-datalayer-db/AGENTS.md
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendSmsAndroid.kt
respect-app-compose/src/jvmMain/kotlin/world/respect/app/app/AppIcon.desktop.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/Platform.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadStatusUpdate.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HeadersExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolDbPath.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialRequestOptionsJSON.kt
app-server/src/main/resources/demoapp/locales/fr-FR.json
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppActionButton.kt
respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt
respect-lib-opds-model/build.gradle.kts
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/LaunchDebouncer.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolValidationRoute.kt
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheNsdAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/Platform.android.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlFreshnessCheckerImpl.kt
lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.html
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/E2EArtifactUploadUseCaseClient.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonGenderEnumExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticateQrBadgeUseCase.kt
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/UstadCacheExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/AppRoutes.kt
respect-lib-primarykeygen/build.gradle.kts
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/CustomDeepLinkToUrlUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/waitingforapproval/WaitingForApprovalViewModel.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/xapinanohttpd/XapiResourceProviderAndroid.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsClientOutputsJSON.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCaseClient.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntry.kt
lib-primarykeygen/build.gradle.kts
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/BasicWebView.kt
respect-lib-shared/src/commonMain/composeResources/drawable/compose-multiplatform.xml
app-server/src/main/resources/http/respect-ds/case_valid/js/xapi_statement_maker.js
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppUseCaseAndroid.kt
respect-lib-ihttp-okhttp/src/commonMain/kotlin/com/ustadmobile/ihttp/okhttp/headers/OkHttpHeadersAdapter.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/AddNewEntryTriggerCallback.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/navigation/NavCommandEffect.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/onboarding/OnboardingScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/openexternallink/OpenExternalLinkUseCase.kt
respect-lib-ihttp-core/src/jvmMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.jvm.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IAsYouTypeFormatterAdapterAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getlanguageendonym/GetLanguageEndonymUseCase.kt
respect-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt
respect-app-compose/src/androidMain/res/drawable/digital_library.png
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppLearningUnitRoute.kt
app-server/src/main/resources/http/respect-ds/case_valid/launchable-app.json
lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberDateTimeFormat.kt
respect-server/src/main/resources/demoapp/locales/en-US.json
respect-app-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.android.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountSchoolScopeLink.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HttpHeaderListExt.kt
lib-appui-compose/src/androidMain/res/mipmap-hdpi/ic_launcher_round.png
respect-server/build.gradle.kts
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/sharefeedback/ShareFeedbackViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
app-server/src/main/resources/demoapp/credits.txt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/logging/NapierLoggingAdapter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/Greeting.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageOptionsUseCase.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/script.js
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/RawStatementViewModel.kt
lib-ihttp-iostreams/src/commonMain/kotlin/com/ustadmobile/ihttp/iostreams/ByteArrayExt.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/jstetris.json
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolLinkRoute.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/ClientDataJSON.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectPasswordField.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/detail/PersonDetailScreen.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/CacheEntryExtraHeadersDao.kt
respect-app-compose/README.md
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoConstants.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/RespectViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/edit/ClazzEditViewModel.kt
respect-lib-ihttp-core/src/jsMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.js.kt
respect-server/src/main/resources/demoapp/app_icon.png
app-server/src/main/resources/http/respect-ds/case_valid/index.json
respect-lib-ihttp-core/.gitignore
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/copycode/CopyInviteCodeScreen.kt
app-server/src/main/kotlin/world/respect/server/util/ext/ApplicationRequestExt.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClassPendingPersonListItem.kt
lib-ihttp-okhttp/build.gradle.kts
lib-shared/src/commonMain/kotlin/world/respect/shared/util/UrlParser.kt
app-server/README.md
respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/UriStringSerializer.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/StringExt.kt
app-server/src/main/resources/http/respect-ds/case_valid/icon.webp
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortOptionsBottomSheet.kt
respect-lib-opds-model/README_LAUNCHABLE_APP.md
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMapExt.kt
app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolPermissionGrantRoute.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearchTest.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/termsandcondition/TermsAndConditionViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailHeaderCell.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/CachePathsProviderAndroid.kt
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/NoVarySearchTest.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AaguidProviderInfo.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectRememberPager.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLazyItems.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/LearningUnitSelection.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/effects/AppUiStateEffect.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditScreen.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MappedHttpHeaders.kt
lib-serializers/build.gradle.kts
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NewCacheEntry.kt
respect-lib-shared/build.gradle.kts
respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/index.html
respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringValue.kt
app-server/src/main/resources/demoapp/books.png
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/UrlToCustomDeepLinkUseCase.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCase.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/passkeyList/PasskeyListScreen.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/DefaultCacheCompressionFilter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/StringExt.kt
lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/RouteWithResultDest.kt
lib-datalayer-http-client/build.gradle.kts
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt
lib-datalayer-db/build.gradle.kts
respect-app-compose/src/jvmMain/kotlin/world/respect/images/RespectImage.desktop.kt
lib-appui-compose/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.png
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/CachePathsProviderAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCaseAndroid.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJob.kt
lib-ihttp-okhttp/.gitignore
lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedDate.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/list/ReportListScreen.kt
app-server/src/main/resources/demoapp/xapi_module.js
lib-appui-compose/README.md
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppManifestUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditTaskListItem.kt
lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseWorker.kt
respect-lib-cache/src/androidMain/AndroidManifest.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/effects/AppUiStateEffect.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsSeries.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/readme.txt
respect-lib-opds-model/src/jvmTest/kotlin/world/respect/lib/opds/model/OpdsSerializerTest.kt
app-server/src/main/resources/demoapp/locales/en-US.json
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticatePasswordUseCase.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NeighborCacheDao.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/ByteArrayResponse.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/password/SavePasswordUseCaseAndroidImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/ext/ReportQueryResultExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashEntriesTest.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorUseCase.kt
lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringListSerializer.kt
lib-datalayer/README.md
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createlink/CreateInviteLinkUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/RouteWithResultDestExt.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-left.gif
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/licenses/model/SpdxLicense.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/signup/SignupCredential.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/list/ReportTemplateListViewModel.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/index.json
respect-app-compose/src/jvmMain/kotlin/world/respect/app/components/BasicWebView.desktop.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/icon.png
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestExt.kt
lib-appui-compose/src/androidMain/res/drawable/spix_logo.webp
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectEmptyListComponent.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/RequestBuilder.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/readme.txt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NeighborCacheEntryDao.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NeighborCacheEntry.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/getstarted/GetStartedScreen.kt
respect-app-compose/src/androidMain/kotlin/world/respect/app/app/AppIcon.android.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtilAndroid.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/ResponseExt.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/LaunchNoVarySearchConstants.kt
respect-lib-ihttp-nanohttpd/build.gradle.kts
lib-datalayer-repository/AGENTS.md
lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavCommand.kt
lib-appui-compose/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml
app-server/src/main/resources/http/respect-ds/native_demo/appmanifest.json
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/UstadCacheImpl.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/LogTags.kt
respect-lib-shared/src/commonMain/composeResources/drawable/no_bookmark.xml
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt
respect-lib-ihttp-nanohttpd/src/commonMain/kotlin/com/ustadmobile/ihttp/nanohttpd/NanoHttpdResponseAdapter.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiText.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.css
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/RemoveBookmarkUseCase.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getdeviceinfo/GetDeviceInfoUseCase.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/UrlNormalizeForNoVarySearch.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/edit/ReportEditViewModel.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/video.mp4
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/Snack.kt
respect-lib-cache/src/jvmTest/resources/publication/lesson001/script.js
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.kt
respect-server/src/dist/systemd/respect-server.service
respect-lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/LocalDateOrDateTime.kt
respect-server/src/main/kotlin/world/respect/server/logging/LogbackAntilog.kt
respect-server/src/main/resources/http/respect-ds/native_demo/index.json
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/io/RangeInputStreamTest.kt
respect-lib-ihttp-core/build.gradle.kts
respect-server/src/main/kotlin/world/respect/server/account/invite/username/checkusernameunique/CheckUsernameUniqueUseCaseServer.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/PinnedPublicationDao.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/NeighborCacheDao.kt
respect-app-compose/src/commonMain/kotlin/world/respect/navigation/NavCommandEffect.kt
respect-lib-shared/AGENTS.md
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/partial/ContentRangeTest.kt
lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/distributed/LifeCycleOwnerDistributedCacheInit.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ConcurrentSafeMapOf.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt
respect-server/src/main/resources/http/respect-ds/chimple.json
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/edit/IndictorEditViewmodel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccountManager.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/detail/IndicatorDetailViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ExpandableFabUiState.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedHashCacheEntry.kt
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/webview/OkHttpWebViewClient.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/AbstractEnqueuePinPublicationPrepareUseCase.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequest.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/OpenEelIntent.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.css
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendSmsUseCase.kt
ci-run-test-server.sh
lib-shared/src/commonMain/composeResources/drawable/feedback_sent.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/howpasskeywork/HowPasskeyWorksViewModel.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/FileMimeTypeHelperImpl.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitHtmlUseCase.kt
respect-lib-cache/src/jvmTest/resources/publication/lesson001/lesson001.html
respect-server/src/main/resources/http/respect-ds/case_valid/appmanifest.json
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/LaunchNoVarySearchConstants.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/HttpLinkHeader.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumMetadata.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaderExt.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequest.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsGroup.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticationExtensionsPRFOutputsJSON.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/SubmitRedeemInviteRequestUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/authenticatepassword/AuthenticatePasswordUseCase.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeaders.kt
respect-server/src/main/kotlin/world/respect/server/Application.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/acknowledgement/AcknowledgementViewModel.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsAcquisition.kt
app-server/src/main/resources/demoapp/app_icon.png
app-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/icon.png
respect-server/src/main/resources/http/respect-ds/base.json
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/validateusername/ValidateUsernameUseCase.kt
lib-ihttp-iostreams/README.md
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthJob.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/list/CurriculumMappingListScreen.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/list/PersonListScreen.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadDbDiscoveryListener.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/ValidatedEntry.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCaseAndroid.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/util/ext/FileExt.kt
respect-server/src/main/resources/logback.xml
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/LangMap.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/inviteperson/InvitePersonViewModel.kt
app-server/src/main/kotlin/world/respect/server/util/ext/ApplicationCallExt.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectDetailField.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/VerifyDomainUseCaseImpl.kt
respect-lib-primarykeygen/src/commonMain/kotlin/world/respect/lib/primarykeygen/ext/InstantExt.kt
lib-cache/src/jvmTest/resources/publication/lesson001/script.js
lib-shared/src/commonMain/composeResources/drawable/no_bookmark.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/UsernameSuggestionUseCaseClient.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialUserEntityJSON.kt
respect-app-compose/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.png
lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCaseProcessor.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/HttpLinkHeader.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getdeviceinfo/DeviceInfoExt.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/response/StringResponse.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalTimeField.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCase.kt
lib-primarykeygen/src/androidMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.android.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchShareLinkAndroid.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectQrBadgeInfoBox.kt
respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt
lib-ihttp-core/src/androidMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.android.kt
lib-shared/src/androidMain/assets/aaguid.json
lib-appui-compose/src/androidMain/res/values-night/themes.xml
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchapp/gotoappstore/GoToAppStoreUseCaseAndroid.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CachePaths.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/SelectLangMapStringByLocale.kt
lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/StringOrObjectSerializer.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/icon.png
lib-appui-compose/src/androidMain/res/values/tags.xml
respect-app-compose/src/androidMain/res/drawable/assignments.png
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tincan.xml
app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/icon.png
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/UstadCacheInterceptorTest.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchShareLinkUseCase.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthManager.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/statementmaker.json
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetPasswordViewModel.kt
respect-lib-cache/src/jvmTest/resources/childrens-literature.epub
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/UrlToCustomDeepLinkUseCase.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/RespectUserHandle.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/UsernameSuggestionUseCaseClient.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/detail/StatementDetailViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/waitingforapproval/WaitingForApprovalScreen.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.android.kt
lib-ihttp-iostreams/.gitignore
lib-shared/src/commonMain/kotlin/world/respect/shared/util/CommonSortOptions.kt
lib-appui-compose/src/commonMain/kotlin/theme/Theme.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonPasswordRoute.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchSendSmsUseCase.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/DatabaseExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getdeviceinfo/GetDeviceInfoUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/detail/RawStatementScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DurationGraphFormatter.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/DownloadJobDao.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/MutableStateExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validatepassword/ValidatePasswordUseCase.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/add/AddSchoolUseCase.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/sendinvite/LaunchSendEmailAndroid.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/BasicWebView.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/SnackBarFlowDispatcher.kt
lib-ihttp-iostreams/build.gradle.kts
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/account/passkey/LoadAaguidJsonUseCaseAndroid.kt
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseWorker.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectDetailField.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/toPerson.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/images/RespectImage.android.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/callback/AddSchoolDirectoryCallback.kt
app-server/.gitignore
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/CreateAccountViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/VerifyPasskeyUseCase.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/distributed/http/DistributedCacheHttpEndpointTest.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/GetActivePersonPasskeysUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/SignupScreenModeEnum.kt
respect-lib-shared/src/jvmTest/resources/world/respect/validator/case_manifest_not_discoverable/app.html
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/OkCallExt.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HttpResponseExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/LoadingUiState.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/edit/PersonEditViewModel.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppLearningUnitManifestUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validatepassword/ValidatePasswordUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidatorMessage.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/StringExt.kt
respect-lib-ihttp-core/src/androidMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.android.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/onboarding/ShouldShowOnboardingUseCase.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/PublicationListItem.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorSelectionCriteria.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ReadiumLinkExt.kt
respect-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt
respect-app-compose/src/androidMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.android.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/XXStringHasherExt.kt
respect-lib-shared/src/androidMain/assets/aaguid.json
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/enrollment/list/EnrollmentListScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectTokenManager.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonRoleEnumExt.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NeighborCache.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/novarysearch/UrlBuilderApplyNoVarySearchTest.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResult.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/gettokenanduser/GetTokenAndUserProfileWithCredentialUseCaseClient.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailScreen.kt
lib-appui-compose/src/jvmMain/kotlin/world/respect/app/components/LocalAppLocale.desktop.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailStudentProgressCell.kt
respect-server/src/main/kotlin/world/respect/server/demoapp/DemoLaunchableAppCollectionsRoute.kt
respect-server/.gitignore
lib-appui-compose/src/androidMain/res/drawable/works_offline.png
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/RetentionLockDao.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseImpl.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseAndroidChannelHost.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedTime.kt
respect-lib-ihttp-okhttp/build.gradle.kts
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/AddChildAccountRoute.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppUiState.kt
lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseClientImpl.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/images/RespectImage.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/EnqueueActivityContextJobUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/edit/AssignmentEditViewModel.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/MapExt.kt
respect-server/src/main/kotlin/world/respect/server/routes/e2etestartifactsroute/E2ETestArtifactsRoute.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCase.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/util/ByteBufferExt.kt
lib-shared/src/commonMain/composeResources/drawable/copycode.png
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/termsandcondition/TermsAndConditionScreen.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFacet.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/ValidateLinkUseCase.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MapHttpHeadersAdapter.kt
lib-appui-compose/src/androidMain/res/drawable/ic_launcher_background.xml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/signup/SignupScreenModeEnum.kt
respect-lib-cache/src/jvmTest/resources/ustadmobile-epub.js
lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/KClassStringSerializer.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/detail/ReportDetailViewModel.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/detail/ClazzDetailViewModel.kt
lib-shared/src/commonMain/composeResources/drawable/undraw_qr_code_scan_bewe.xml
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/directives/DirectivesToMap.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt
respect-app-compose/src/androidMain/kotlin/world/respect/images/RespectImage.android.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/validateqrbadge/ValidateQrCodeUseCase.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/icon.png
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCaseImpl.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deeplink/InitDeepLinkUriProviderUseCase.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/SelectLangMapStringByLocale.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TinCanJS/NOTICE
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/sharelink/LaunchShareLinkUseCase.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/2.5.3-crypto-sha1.js
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterpasswordsignup/EnterPasswordSignUpScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onaccountcreated/NavigateOnAccountCreatedUseCase.kt
app-server/src/main/kotlin/world/respect/server/routes/username/UsernameSuggestionRoute.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialCreationOptionsJSON.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/date/ParseHttpDate.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/LangMapExt.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadDbDiscoveryListener.kt
app-server/src/main/resources/http/respect-ds/chimple.json
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NextAfterScan.kt
app-server/src/main/kotlin/world/respect/server/domain/school/add/AddServerManagedDirectoryCallback.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/clazz/list/ClazzListScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/usagereporting/GetUsageReportingEnabledUseCase.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsFeed.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/clazz/list/ClazzListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/PhoneNumberVisualTransformation.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/CountryCodeTransformation.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/respectappmanifest/model/RespectSite.kt
respect-server/src/main/resources/http/respect-ds/case_valid/default-catalog.json
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedDate.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseClientImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/school/SchoolPrimaryKeyGenerator.kt
gradle.properties
respect-lib-shared-se/build.gradle.kts
lib-appui-compose/src/jvmMain/kotlin/world/respect/images/RespectImage.desktop.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/dao/PinnedPublicationDao.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/app/AppIcon.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/UiTextStringResource.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlDirectivesUtil.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/list/CurriculumMappingListViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/RememberFormattedTime.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/getwarnings/GetWarningsUseCase.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadStatusUpdate.kt
app-cli/build.gradle.kts
lib-http-ipc-server/build.gradle.kts
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-right.gif
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/statement/list/StatementListItem.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/validator/Validator.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MapHttpHeadersAdapter.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthUseCaseAndroidImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/ClazzExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPasskeySignInFasterCard.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/onappstart/NavigateOnAppStartUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryCodeToFlagEmoji.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/RedeemInviteUseCaseClient.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/CommonSortOptions.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt
respect-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json
respect-server/src/main/resources/demoapp/learning_unit_xapi.js
app-server/src/main/kotlin/world/respect/server/routes/school/respect/EnrollmentRoute.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/CreatePublicKeyCredentialCreationOptionsJsonUseCase.kt
app-server/src/main/resources/logback.xml
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/copycode/CopyInviteCodeViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/ext/SnackBarDispatcherUseCaseExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/StringExt.kt
lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/17.json
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/HeadersBuilderExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/list/CurriculumMappingListViewModel.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseAndroidImpl.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/ResponseCacheabilityCheckerExt.kt
respect-lib-shared/src/commonMain/composeResources/drawable/empty.png
lib-serializers/src/commonMain/kotlin/world/respect/lib/serializers/DurationAsISO8601Serializer.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCase.kt
respect-app-compose/src/androidMain/res/raw/license_label_json
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/detail/AssignmentDetailTaskHeader.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadProgressUpdate.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/apps/list/AppListScreen.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/school/LaunchCustomTabUseCaseAndroid.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/RequestBuilder.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListItem.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/UstadCacheDb.kt
lib-appui-compose/src/commonMain/kotlin/theme/Color.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/DateGraphFormatter.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/edit/EnrollmentEditViewModel.kt
respect-server/src/main/resources/demoapp/books.png
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHeadersBuilder.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/FileSystemExt.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHttpHeadersExt.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/viewmodel/RespectViewModelFun.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt
app-server/src/main/kotlin/world/respect/server/account/invite/username/UsernameSuggestionUseCaseServer.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/GenderGraphFormatter.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/accountlist/AccountListScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonListDetailsExt.kt
respect-lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticatePasswordUseCaseDbImpl.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/util/ext/IntExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/e2eartifactupload/GetDbFilesForE2EArtifactUploadUseCase.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithFormUrlEncodedData.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/PersonListDetailsExt.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCaseAndroidImpl.kt
app-server/src/main/kotlin/world/respect/server/ServerKoinModule.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/storage/GetOfflineStorageOptionsUseCaseAndroid.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteRoute.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/KtorIHeadersAdapter.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/child/AddChildAccountUseCase.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/ResponseExt.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/acknowledgement/AcknowledgementScreen.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/SourceExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/navigation/deferreddeeplink/GetDeferredDeepLinkUseCase.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsSeries.kt
lib-cache/src/jvmTest/resources/publication/lesson001/audio.ogg
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/OutputStreamExt.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tincan.xml
app-server/src/main/resources/http/respect-ds/case_valid/Lesson-manifest.json
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/statement/list/StatementListViewModel.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/signup/SignUpScreen.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/app/App.kt
respect-server/README.md
app-server/src/main/resources/http/respect-ds/native_demo/Lesson
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheControlHeader.kt
app-server/src/main/kotlin/world/respect/server/AppConfigExt.kt
lib-shared-se/src/commonMain/kotlin/world/respect/sharedse/domain/account/authenticatepassword/AuthenticateQrBadgeUseCaseDbImpl.kt
respect-cli/src/main/java/world/respect/clitools/RespectCLI.kt
respect-app-compose/src/androidMain/res/layout/activity_web_view.xml
lib-appui-compose/src/jvmMain/kotlin/world/respect/main.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterpasswordsignup/EnterPasswordSignUpScreen.kt
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AuthenticatorSelectionCriteria.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/ReadiumSubject.kt
app-server/src/main/resources/http/respect-ds/case_valid/default-catalog.json
lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseAndroid.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/DistributedCacheInterceptor.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/http/DistributedCacheHttpEndpoint.kt
lib-appui-compose/build.gradle.kts
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MappedHttpHeaders.kt
lib-appui-compose/src/androidMain/res/values-v23/themes.xml
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt
app-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/assignment/detail/AssignmentDetailViewModel.kt
lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestCreator.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCachePong.kt
respect-server/src/main/resources/http/respect-ds/manifestlist.json
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/assignment/edit/AssignmentEditTaskListItem.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/LaunchAppTags.kt
respect-lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsPrice.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/indicator/list/IndicatorListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/createaccount/CreateAccountScreen.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/DownloadProgressUpdate.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/curriculum/mapping/list/CurriculumMappingListScreen.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/MergedHeaders.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumberUtil.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geolookup/GetCountryForUrlUseCaseImpl.kt
lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/distributed/DistributedCacheNsdAndroid.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/activitycontextjobprocessor/ActivityContextJobProcessor.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/enrollment/list/EnrollmentListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/enterinvitecode/EnterInviteCodeScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCaseDatabaseImpl.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCase.kt
app-server/src/main/kotlin/world/respect/server/util/ext/ExceptionExtensions.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentStatusFilter.kt
respect-cli/.gitignore
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheControlHeader.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/util/RememberFormattedDate.android.kt
lib-opds-model/src/commonMain/kotlin/world/respect/lib/opds/model/OpdsBelongsTo.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/AppStateIcon.kt
respect-app-compose/src/jvmMain/kotlin/world/respect/app/util/scanqrcode/PermissionsManager.desktop.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.js
lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/io/RangeInputStreamTest.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.ico
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/usagereporting/SetUsageReportingEnabledUseCaseAndroid.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/novarysearch/URLBuilderNormalizeForNoVarySearch.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/GuessCountryCode.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/ext/UstadCacheDbExt.kt
lib-appui-compose/src/androidMain/res/raw/license_label_json
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/SubmitRedeemInviteRequestUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResult.kt
lib-ihttp-okhttp/proguard-rules.pro
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/InviteInfoRoute.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/profile/SignupViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/EncodeUserHandleUseCaseImpl.kt
respect-lib-cache/src/jvmTest/resources/publication/lesson001/audio.ogg
respect-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/AaguidProviderInfo.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/FileSystemCommonExt.kt
respect-app-compose/src/androidMain/kotlin/world/respect/shared/domain/license/GetLicenseLabelUseCaseAndroid.kt
app-server/src/main/resources/http/respect-ds/case_valid/appmanifest.json
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/filteredit/ReportFilterEditScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/list/SchoolDirectoryListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/report/graph/CombinedGraph.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCase.kt
lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestJvm.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/CacheControlDirectivesUtil.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/ext/NavCommandExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/assignment/list/AssignmentListScreen.kt
respect-app-compose/src/androidMain/res/drawable/respect_logo.webp
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/RedeemInviteRoute.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/InviteExt.kt
respect-lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/request/IHttpRequestWithByteBody.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/AssignmentListScreenFilter.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/OnClickPhoneNumberUseCaseAndroid.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/headers/MimeTypeHelper.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectPasswordField.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCaseAndroid.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/AvatarColorForName.kt
respect-lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/UstadCacheBuilder.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/list/AppListViewModel.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectPagingItems.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCase.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/NewCacheEntry.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/CompressionType.kt
respect-server/src/main/kotlin/world/respect/server/account/invite/CreateInviteUseCaseServer.kt
app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/StringExt.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/otheroptionsignup/OtherOptionsSignupViewModel.kt
app-server/src/main/resources/demoapp/grade.jpg
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/indictor/list/IndicatorListViewmodel.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/response/HttpResponseExt.kt
respect-lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/util/NapierLogInit.kt
respect-lib-shared/src/commonMain/composeResources/drawable/feedback_sent.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/howpasskeywork/HowPasskeyWorksScreen.kt
lib-shared/src/commonTest/resources/opds-io-home.json
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/phonenumber/IPhoneNumber.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchers/LaunchSendWhatsAppUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectLocalDateTimeField.kt
lib-primarykeygen/src/jvmMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.jvm.kt
lib-datalayer/build.gradle.kts
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/UstadCacheTrimmerTest.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/HeadersExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/manageaccount/ManageAccountViewModel.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/model/PublicKeyCredentialUserEntityJSON.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/license/LicenseLabelEntry.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/util/phonenum/CountryCodeTransformation.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/testing/SendDbToServerScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/createclass/CreateClassUseCase.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/downloader/RunDownloadJobUseCase.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/statementmaker/statementmaker.json
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/FilterChipsOption.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/LogTags.kt
respect-server/src/main/resources/demoapp/index.html
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StoreProgressListener.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/username/checkusernameunique/CheckUsernameUniqueUseCaseClient.kt
lib-ihttp-core/src/jvmMain/kotlin/com/ustadmobile/ihttp/ext/ByteArrayExt.jvm.kt
respect-lib-primarykeygen/src/jvmMain/kotlin/world/respect/lib/primarykeygen/GenerateNodeId.jvm.kt
respect-app-compose/src/jvmMain/kotlin/world/respect/main.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/DayOfWeekExt.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/key-space.gif
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/qrcode/InviteQrScreen.kt
lib-cache/src/jvmTest/kotlin/com/ustadmobile/libcache/okhttp/AbstractCacheInterceptorTest.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/schooldirectory/edit/SchoolDirectoryEditViewModel.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/setusernameandpassword/CreateAccountSetUserNameViewModel.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/TC_tetris.js
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/query/RunReportUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/setpassword/EncryptPersonPasswordUseCaseImpl.kt
lib-shared/src/androidMain/kotlin/world/respect/shared/domain/phonenumber/PhoneNumValidatorAndroid.kt
lib-appui-compose/src/jvmMain/kotlin/world/respect/app/components/BasicWebView.desktop.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/clazz/detail/ClassPendingPersonListItem.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/credentials/passkey/CreatePasskeyUseCaseProcessor.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/okhttp/ResponseCacheabilityCheckerExt.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/respectaccount/list/RespectAccountListViewModel.kt
lib-appui-compose/src/jvmMain/kotlin/world/respect/app/util/phonenum/PhoneUtils.desktop.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/SnackBarFlowDispatcher.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/SnackBarDispatcher.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/CountryCodeToFlagEmoji.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/app/appstate/ExpandableFabUiState.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/assignable-unit-1/unit.json
lib-appui-compose/src/androidMain/kotlin/world/respect/callback/AddDirectoriesMigration.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/md5/Md5Digest.kt
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/io/InputStreamExt.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/biometric/BiometricAuthJob.kt
app-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt
app-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt
app-server/src/main/resources/http/respect-ds/case_valid/examples/jstetris/tetris.ico
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/passkey/RevokePasskeyUseCaseClient.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/resources/UiText.kt
lib-credentials/src/commonMain/kotlin/world/respect/credentials/passkey/request/GetPasskeyProviderInfoUseCase.kt
app-server/src/main/kotlin/world/respect/server/ServerAppMain.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/person/manageaccount/ManageAccountScreen.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/enrollments/UpdateClazzStudentXapiGroupUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt
respect-lib-cache/schemas/com.ustadmobile.libcache.db.UstadCacheDb/16.json
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/model/CurriculumMapping.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/downloader/EnqueueRunDownloadJobUseCaseAndroid.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/qrcode/InviteQrViewModel.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/ResponseCacheabilityCheckerImpl.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/PersonRoute.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getxapilaunchparams/GetXapiLaunchParamsUseCase.kt
respect-lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/base64/Base64Ext.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/invite/GetInviteInfoUseCase.kt
respect-credentials/build.gradle.kts
respect-server/src/main/resources/http/respect-ds/native_demo/Lesson
respect-app-compose/src/androidMain/kotlin/world/respect/credentials/passkey/GetCredentialUseCaseProcessor.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/urltonavcommand/ResolveUrlToNavCommandUseCase.kt
lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/StoreResult.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/navigation/NavResultReturnerExt.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/schooldirectory/list/SchoolDirectoryListScreen.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/manageuser/acceptinvite/AcceptInviteScreen.kt
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/ext/IHeaderExt.kt
respect-app-compose/src/androidMain/kotlin/world/respect/WebViewActivity.kt
lib-cache/src/androidMain/kotlin/com/ustadmobile/libcache/md5/Md5DigestAndroid.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/opds/getxapiactivityid/GetXapiActivityForPublicationUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/report/filteredit/ReportFilterEditViewModel.kt
respect-lib-cache/build.gradle.kts
respect-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/launchable-app.json
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/launcher/AppLauncherScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/person/list/PersonListViewModel.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/RespectDataLoadHost.kt
lib-appui-compose/src/androidMain/res/values/strings.xml
app-server/src/main/resources/http/respect-ds/case_valid/examples/lesson001/lesson001.json
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/db/entities/CacheEntryExtraHeaders.kt
lib-shared/src/commonMain/resources/directories/default.properties
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/distributed/model/DistributedCacheWhatWithIdAndPayload.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/curriculum/mapping/CurriculumMappingAdapter.kt
lib-cache/src/jvmMain/kotlin/com/ustadmobile/libcache/downloader/EnqueuePinPublicationPrepareUseCaseJvm.kt
respect-server/src/main/resources/http/respect-ds/case_valid/examples/icon.png
lib-ihttp-core/src/commonMain/kotlin/com/ustadmobile/ihttp/headers/IHeadersBuilder.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/getdeviceinfo/GetDeviceInfoUseCaseAndroid.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/manageuser/getstarted/GetStartedViewModel.kt
app-server/src/main/kotlin/world/respect/server/domain/school/demoapp/MakeDemoAppGradeCollectionsUseCase.kt
app-android/README.md
lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectRememberPager.kt
respect-app-compose/src/androidMain/res/drawable/baseline_close_24.xml
respect-app-compose/src/commonMain/kotlin/world/respect/app/components/RespectSortHeader.kt
lib-serializers/README.md
respect-lib-cache/src/commonMain/kotlin/com/ustadmobile/libcache/cachecontrol/RequestCacheControlHeader.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/report/formatter/CountGraphFormatter.kt
</description></item><item><title>#226 Update respect-server.service template. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail989</link><guid isPermaLink="false">job/dev-language/226/changes#detail989</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-server/src/dist/systemd/respect-server.service
</description></item><item><title>#226 Remove test data no longer covered by gitignore. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail990</link><guid isPermaLink="false">job/dev-language/226/changes#detail990</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-server/data/http___10_40_49_70_8098_/http___10_40_49_70_8098_.lck
respect-server/data/http___10_40_49_70_8098_/http___10_40_49_70_8098_-wal
respect-server/data/respect-app.db-wal
respect-server/data/respect-app.db
respect-server/data/dir-admin.txt
respect-server/data/respect-app.db-shm
respect-server/data/server.properties
respect-server/data/http___10_40_49_70_8098_/http___10_40_49_70_8098_
respect-server/data/respect-app.db.lck
respect-server/data/http___10_40_49_70_8098_/http___10_40_49_70_8098_-shm
</description></item><item><title>#226 Update gitignore to reflect module renaming and avoid accidental commit of old server data. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail991</link><guid isPermaLink="false">job/dev-language/226/changes#detail991</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.gitignore
</description></item><item><title>#226 Remove obsolete old composeApp directory. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail992</link><guid isPermaLink="false">job/dev-language/226/changes#detail992</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>composeApp/src/desktopMain/resources/img/spix_logo.png
.gitignore
composeApp/src/desktopMain/resources/img/respect_logo.png
</description></item><item><title>#226 Fix links in AGENTS.md and README.md (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail993</link><guid isPermaLink="false">job/dev-language/226/changes#detail993</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-server/README.md
AGENTS.md
</description></item><item><title>#226 Remove obsolete SchoolApp datasource. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail994</link><guid isPermaLink="false">job/dev-language/226/changes#detail994</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/17.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSourceLocal.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/SchoolAppDataSource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/SchoolAppEntityDao.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/SchoolApp.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/SchoolAppEntity.kt
app-server/src/main/kotlin/world/respect/server/Application.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/SchoolAppDataSourceHttpClient.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/SchoolAppDataSourceDb.kt
app-server/src/main/kotlin/world/respect/server/routes/school/respect/SchoolAppRoute.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttpClient.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/SchoolAppAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/SchoolAppDataSourceRepository.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
</description></item><item><title>#226 Add ETag and Last-Modified caching support to OpdsFeedDataSource and remove write operations (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail995</link><guid isPermaLink="false">job/dev-language/226/changes#detail995</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttpClient.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededit/OpdsFeedEditViewModel.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/opds/OpdsFeedDataSource.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/18.json
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/opds/OpdsFeedDataSourceHttpClient.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/ext/OpdsFeedEntityExt.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/ETagAndLastModifiedExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt
</description></item><item><title>#226 Implement asRepoFlow for repository data loading and remove OPDS feed write support (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail996</link><guid isPermaLink="false">job/dev-language/226/changes#detail996</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/adapters/OpdsFeedAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/ETagAndLastModifiedExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/OpdsFeedDataSourceDb.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsFeedEntity.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ETagAndLastModified.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/HeadersExt.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeedlist/OpdsFeedListViewModel.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/18.json
app-server/src/main/kotlin/world/respect/server/routes/school/respect/PlaylistRoute.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/flow/RepoFlow.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/daos/OpdsFeedEntityDao.kt
</description></item><item><title>#226 Implement SaveOpdsFeedUseCase to persist OPDS feeds to xAPI activity profile (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail997</link><guid isPermaLink="false">job/dev-language/226/changes#detail997</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer/build.gradle.kts
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/catalog/saveopdsfeed/SaveOpdsFeedUseCase.kt
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/catalog/opdsfeededit/OpdsFeedEditViewModel.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/OpenEelXapiConstants.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/domain/MakePlaylistOpdsFeedUseCase.kt
</description></item><item><title>#226 Add test for RepoFlow (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail998</link><guid isPermaLink="false">job/dev-language/226/changes#detail998</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/flow/RepoFlowTest.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/flow/RepoFlow.kt
</description></item><item><title>#226 Prevent older remote data from overwriting newer local data (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail999</link><guid isPermaLink="false">job/dev-language/226/changes#detail999</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/opds/OpdsRespectRepositoryIntegrationTest.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/flow/RepoFlowTest.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/opds/OpdsFeedDataSourceRepository.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/flow/RepoFlow.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt
lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/ETagAndLastModifiedExt.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/ext/DataLoadParamsExt.kt
</description></item><item><title>#226 Update DataLoadStateExt.kt comments (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1000</link><guid isPermaLink="false">job/dev-language/226/changes#detail1000</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt
</description></item><item><title>#226 Restore to maestro tests as per main branch. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1001</link><guid isPermaLink="false">job/dev-language/226/changes#detail1001</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/flows/subflows/admin_add_class_with_members.yaml
.maestro/flows/subflows/admin_add_class.yaml
.maestro/flows/subflows/admin_add_new_student_to_class.yaml
.maestro/flows/subflows/admin_add_student.yaml
.maestro/flows/002_001_user_add_apps_playlists_and_bookmarks_to_school_test.yaml
.maestro/flows-pending/001_005_add_school_self_registration_test.yaml
.maestro/flows/002_001_browse_lessons_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows/subflows/admin_add_new_teacher_to_class.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#226 Fix use of title on 002_001 browse lesson test. Update maestro readme as per new module names. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1002</link><guid isPermaLink="false">job/dev-language/226/changes#detail1002</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/README.md
.maestro/flows/002_001_browse_lessons_test.yaml
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/catalog/publicationdetail/PublicationDetailScreen.kt
</description></item><item><title>#226 Fix 002_002_browse_demo_app_test.yaml : change id to publication_title. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1003</link><guid isPermaLink="false">job/dev-language/226/changes#detail1003</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_002_browse_demo_app_test.yaml
</description></item><item><title>#226 Extract AbstractXapiDocumentResourceTest and add XapiStateResource (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1004</link><guid isPermaLink="false">job/dev-language/226/changes#detail1004</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentResourceExt.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiStateResource.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiDocumentResource.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/ISingleDocumentParams.kt
lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiActivityProfileResourceHttpClientTest.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiActivityProfileResourceAssertions.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiDocumentResourceTest.kt
lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiActivityProfileResourceRoute.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiActivityProfileResourceTest.kt
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDbTest.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiActivityProfileResource.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt
</description></item><item><title>#226 Implement xAPI State resource database storage and migration to version 18 (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1005</link><guid isPermaLink="false">job/dev-language/226/changes#detail1005</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDocumentEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiStateDocumentAndShaEntities.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiStateResourceLocal.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiActivityProfileResourceDb.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDocumentShaDao.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiStateResourceAssertions.kt
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiStateResourceDbTest.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDocumentShaEntity.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiActorExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiStateDocumentAdapter.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentDao.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiResourceLocal.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/18.json
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/ext/XapiDocumentExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiActivityProfileDocumentShaEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/shared/SharedConverters.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiStateResourceTest.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStateResourceDb.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDocumentDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiActivityProfileDocumentShaDao.kt
</description></item><item><title>#226 Add xAPI State resource HTTP client and server route (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1006</link><guid isPermaLink="false">job/dev-language/226/changes#detail1006</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiStateResourceRoute.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiResourceLocal.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiStateResourceHttpClient.kt
lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiStateResourceHttpClientTest.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
</description></item><item><title>#226 Extract AbstractXapiDocumentResourceRepositoryIntegrationTest base test class (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1007</link><guid isPermaLink="false">job/dev-language/226/changes#detail1007</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/AbstractXapiDocumentResourceRepositoryIntegrationTest.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryIntegrationTest.kt
</description></item><item><title>#226 Extract AbstractXapiDocumentResourceRepositoryIntegrationTest base test class (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1008</link><guid isPermaLink="false">job/dev-language/226/changes#detail1008</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepositoryTest.kt
</description></item><item><title>#226 Implement XapiStateResourceRepository (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1009</link><guid isPermaLink="false">job/dev-language/226/changes#detail1009</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiActivityProfileResourceRepository.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStateResourceRepositoryTest.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiStateResourceRepository.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/WithEmbeddedServerAndRepoClients.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiStateResourceRepositoryIntegrationTest.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/XapiRemoteWriteQueueItem.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/AbstractXapiDocumentResourceRepositoryIntegrationTest.kt
</description></item><item><title>#226 Implement xAPI Agent Profile resource (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1010</link><guid isPermaLink="false">job/dev-language/226/changes#detail1010</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-http-client/src/jvmTest/kotlin/world/respect/datalayer/http/school/xapi/XapiAgentProfileResourceHttpClientTest.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiAgentProfileResource.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiAgentProfileDocumentDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateEntityDao.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiAgentProfileResourceRepository.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiResourceHttpClient.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAgentProfileDocumentEntity.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/XapiResource.kt
app-server/src/main/kotlin/world/respect/server/Application.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiAgentProfileResourceRepositoryTest.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentProfileResourceDb.kt
lib-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/xapi/XapiResourceRepository.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiResourceLocal.kt
lib-datalayer-repository/src/jvmTest/kotlin/world/respect/datalayer/repository/school/xapi/XapiAgentProfileResourceRepositoryIntegrationTest.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabaseMigrations.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/composites/XapiAgentProfileDocumentAndShaEntities.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/XapiRemoteWriteQueueItem.kt
lib-datalayer-http-client/src/commonMain/kotlin/world/respect/datalayer/http/school/xapi/XapiAgentProfileResourceHttpClient.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt
lib-datalayer-db/src/jvmTest/kotlin/world/respect/datalayer/db/school/xapi/XapiAgentProfileResourceDbTest.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiStateDeleteCommandDao.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/AbstractXapiAgentProfileResourceTest.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/adapters/XapiAgentProfileDocumentAdapter.kt
lib-xapi-test/src/commonMain/kotlin/org/openeel/libxapi/test/XapiAgentProfileResourceAssertions.kt
lib-datalayer-http-server/src/commonMain/kotlin/world/respect/datalayer/http/server/XapiAgentProfileResourceRoute.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAgentProfileDocumentShaEntity.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiStateDeleteCommand.kt
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/resources/local/XapiAgentProfileResourceLocal.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/daos/XapiAgentProfileDocumentShaDao.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/entities/XapiAssignmentProgressEntityRow.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectSchoolDatabase/19.json
lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/remotewritequeue/DrainXapiRemoteWriteQueueUseCase.kt
lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
</description></item><item><title>#226 Remove obsolete models and add authentication options to SchoolDirectoryEntry. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1011</link><guid isPermaLink="false">job/dev-language/226/changes#detail1011</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/10.json
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterOrgGUIDRef.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/adapters/SchoolDirectoryEntryAdapter.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/AuthOptionConfig.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/PersonEntity.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserGUIDRef.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Person.kt
lib-ihttp-core/README.md
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClassGUIDRef.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/SchoolDirectoryEntry.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterEnrollment.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRole.kt
lib-shared/src/jvmMain/kotlin/world/respect/shared/domain/opds/validator/ValidateOpdsPublicationUseCase.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGUIDRef.kt
lib-test/src/jvmMain/kotlin/world/respect/lib/test/clientservertest/ClientServerDatasourceTest.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabase.kt
app-server/src/main/kotlin/world/respect/server/ManagerServerCLI.kt
lib-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/11.json
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/account/RespectAccount.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryEntity.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/util/GenderToString.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterClass.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterGenderEnum.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterResourceGUIDRef.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/invite/AuthOptionConfigTypeEnum.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/respectappmanifest/model/RespectSite.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/respect/model/AuthenticationOption.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBase.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterBaseStatusEnum.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/composites/ClazzListDetails.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/UidNumberMapper.kt
README.md
app-server/src/main/kotlin/world/respect/server/domain/school/add/RegisterSchoolUseCaseImpl.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnumExt.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectAppDatabaseMigrations.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserProfile.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/daos/SchoolDirectoryEntryAuthOptionEntityDao.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleEnum.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterRoleTypeEnum.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/SchoolDirectoryEntryDataSourceDb.kt
lib-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/schooldirectory/entities/SchoolDirectoryEntryAuthOptionEntity.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUser.kt
lib-datalayer/src/commonMain/kotlin/world/respect/datalayer/oneroster/model/OneRosterUserId.kt
</description></item><item><title>#226 Update README_XAPI_SQL_QUERY.md recipe - add parent id for query-response. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1012</link><guid isPermaLink="false">job/dev-language/226/changes#detail1012</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-core/README_XAPI_SQL_QUERY.md
</description></item><item><title>#226 Refactor statement handling into StatementResourceResponder and add tests (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1013</link><guid isPermaLink="false">job/dev-language/226/changes#detail1013</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/XapiResourceProviderExt.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/DataLoadStateExt.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt
lib-xapi-nanohttpd/AGENTS.md
lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/WithNanoHttpdXapiResource.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/StatementResourceResponder.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
lib-xapi-nanohttpd/build.gradle.kts
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/NanoHttpdXapiResponder.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/LogResponse.kt
lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiStatementResourceNanoHttpdTest.kt
</description></item><item><title>#226 Add xAPI State resource responder in NanoHTTPD (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1014</link><guid isPermaLink="false">job/dev-language/226/changes#detail1014</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/XapiDocumentExt.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/DataLoadStateExt.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/NewNoCnotentResponse.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/XapiStateResourceResponder.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/AbstractXapiDocumentResourceResponder.kt
lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiStateResourceNanoHttpdTest.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdResponseExt.kt
</description></item><item><title>#226 Add xAPI State resource responder in NanoHTTPD (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1015</link><guid isPermaLink="false">job/dev-language/226/changes#detail1015</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/StatementResourceResponder.kt
</description></item><item><title>#226 Add Activity and Agent Profile resources to lib-xapi-nanohttpd (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1016</link><guid isPermaLink="false">job/dev-language/226/changes#detail1016</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiActivityProfileResourceNanoHttpdTest.kt
lib-xapi-nanohttpd/src/jvmTest/kotlin/world/respect/lib/xapi/nanohttpd/XapiAgentProfileResourceNanoHttpdTest.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/ext/NanoHttpdSessionExt.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/XapiAgentProfileResourceResponder.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/XapiStateResourceResponder.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/XapiActivityProfileResourceResponder.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/resources/StatementResourceResponder.kt
lib-xapi-nanohttpd/src/commonMain/kotlin/world/respect/lib/xapi/nanohttpd/XapiNanoHttpdApp.kt
</description></item><item><title>#226 Add state resource to Application.kt and fix GetLaunchOptionsForPublicationUseCase.kt url resolution. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1017</link><guid isPermaLink="false">job/dev-language/226/changes#detail1017</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-server/src/main/kotlin/world/respect/server/Application.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/launchapp/getlaunchoptionsforpublication/GetLaunchOptionsForPublicationUseCase.kt
</description></item><item><title>#226 Refactor app locale and language selection handling (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1018</link><guid isPermaLink="false">job/dev-language/226/changes#detail1018</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-shared/src/commonMain/composeResources/values-hi/strings.xml
app-android/src/main/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/composeResources/values-hi/strings.xml
app-android/src/main/AndroidManifest.xml
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguageNames.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SetLanguageUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguageNames.kt
app-android/src/main/kotlin/world/respect/shared/domain/applanguage/LocaleSettingDelegateAndroid.kt
app-android/src/main/kotlin/world/respect/shared/domain/applanguage/SetLanguageUseCaseAndroid.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt
respect-lib-shared/src/commonMain/composeResources/values-ne/strings.xml
lib-shared/src/commonMain/composeResources/values-ne/strings.xml
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/applanguage/LocaleSettingDelegateAndroid.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguagesConfig.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SetLanguageUseCase.kt
lib-appui-compose/src/androidMain/kotlin/world/respect/app/components/LocalAppLocale.android.kt
lib-appui-compose/src/androidMain/res/values-hi/strings.xml
lib-appui-compose/src/androidMain/res/values-ne/strings.xml
respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/applanguage/SetLanguageUseCaseAndroid.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguagesConfig.kt
</description></item><item><title>#226 Implement GetUiLanguagesUseCase and refactor language loading in ViewModels (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1019</link><guid isPermaLink="false">job/dev-language/226/changes#detail1019</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>app-android/src/main/kotlin/world/respect/AppKoinModule.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/settings/SettingsViewModel.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/GetUiLanguagesUseCase.kt
lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/onboarding/OnboardingViewModel.kt
</description></item><item><title>#226 Remove unsupported languages and update Android activity configChanges (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1020</link><guid isPermaLink="false">job/dev-language/226/changes#detail1020</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/006_001_user_set_language_on_app_test.yaml
lib-appui-compose/src/androidMain/res/values-ne/strings.xml
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguageNames.kt
app-android/src/main/AndroidManifest.xml
lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguagesConfig.kt
</description></item><item><title>#226 Update expected app title to "Home" in user set language test (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1021</link><guid isPermaLink="false">job/dev-language/226/changes#detail1021</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/006_001_user_set_language_on_app_test.yaml
</description></item><item><title>#226 Update user set language Maestro test to verify Hindi localization (pooja)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1022</link><guid isPermaLink="false">job/dev-language/226/changes#detail1022</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/006_001_user_set_language_on_app_test.yaml
</description></item><item><title>#226 Extract getLanguageDisplayText helper and refactor locale selection (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-language/226/changes#detail1023</link><guid isPermaLink="false">job/dev-language/226/changes#detail1023</guid><pubDate>Wed, 30 Sep 2026 06:37:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>lib-shared/src/commonMain/kotlin/world/respect/shared/domain/applanguage/SupportedLanguagesConfig.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/view/settings/SettingsScreen.kt
lib-appui-compose/src/commonMain/kotlin/world/respect/app/components/LanguageDropdown.kt
</description></item></channel></rss>