<?xml version="1.0" encoding="UTF-8"?>
    
    <rss version="2.0"><channel><title>dev-bookmark-xapi Git changes</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/changes</link><description>dev-bookmark-xapi Git changes</description><item><title>#12 Add AppListingSummary model for xAPI app listing recipe (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail0</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail0</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#12 Implement xAPI app listing recipe and replace AppListingSummary with XapiStatement extension properties. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail1</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail1</guid><pubDate>Thu, 2 Jul 2026 14:14: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/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/model/AppListingSummary.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>#12 Remove `getAppListAsFlow` and associated XAPI application listing extensions. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail2</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail2</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#12 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-bookmark-xapi/12/changes#detail3</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail3</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#12 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-bookmark-xapi/12/changes#detail4</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail4</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#12 Refactor `XapiAppListingConstants` to use constants from `XapiVerb` and `OpenEelXapiConstants` directly. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail5</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail5</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#12 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-bookmark-xapi/12/changes#detail6</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail6</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#12 Migrate legacy school apps to xAPI stream during account scope creation. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail7</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail7</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#12 Remove `migrateSchoolAppsToXapi` utility and clean up `ServerAccountScopeManager` logic. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail8</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail8</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#12 Revert "Remove `migrateSchoolAppsToXapi` utility and clean up `ServerAccountScopeManager` logic." (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail9</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail9</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#12 Revert "Migrate legacy school apps to xAPI stream during account scope creation." (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail10</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail10</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#12 Fix SelectLang.kt to use the code string exactly as found in the availableLocales. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail11</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail11</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#12 Add use case to get Opds Publication for a given XapiActivity. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail12</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail12</guid><pubDate>Thu, 2 Jul 2026 14:14: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-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/geticonforxapiactivity/GetPublicationForXapiActivityUseCase.kt
</description></item><item><title>#12 Restore the icon (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail13</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail13</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#12 Include `appManifestUrl` in `LearningUnitDetail` route and xAPI bookmark statements. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail14</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail14</guid><pubDate>Thu, 2 Jul 2026 14:14: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
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/detail/LearningUnitDetailScreen.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/bookmark/AddBookmarkUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt
</description></item><item><title>#12 Refactor `BookmarkListScreen` to use `PublicationListItem` and add `trailingContent` support to `PublicationListItem`. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail15</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail15</guid><pubDate>Thu, 2 Jul 2026 14:14: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/bookmark/BookmarkListScreen.kt
</description></item><item><title>#12 Update XapiStatementsResourceDb and DAOs to allow all users read access to list of apps. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail16</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail16</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#12 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-bookmark-xapi/12/changes#detail17</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail17</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#12 Remove unused imports in `AppBar.kt`. (lipsa.behera)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail18</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail18</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#12 Remove unused openeelxapiconstant val. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/12/changes#detail19</link><guid isPermaLink="false">job/dev-bookmark-xapi/12/changes#detail19</guid><pubDate>Thu, 2 Jul 2026 14:14: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>#11 Introduce `AddBookmarkUseCase` and `RemoveBookmarkUseCase` to centralize bookmarking logic and refactor view models to use these use cases. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/11/changes#detail0</link><guid isPermaLink="false">job/dev-bookmark-xapi/11/changes#detail0</guid><pubDate>Wed, 1 Jul 2026 14:14: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-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/model/Bookmark.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/RemoveBookmarkUseCase.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/domain/bookmark/AddBookmarkUseCase.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt
</description></item><item><title>#11 Remove unused `FontWeight` import in `LearningUnitDetailScreen`. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/11/changes#detail1</link><guid isPermaLink="false">job/dev-bookmark-xapi/11/changes#detail1</guid><pubDate>Wed, 1 Jul 2026 14:14: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>#10 Refine code formatting and whitespace. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/10/changes#detail0</link><guid isPermaLink="false">job/dev-bookmark-xapi/10/changes#detail0</guid><pubDate>Tue, 30 Jun 2026 14:14:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/writequeue/DrainRemoteWriteQueueUseCase.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/SchoolDataSourceRepository.kt
</description></item><item><title>#10 Refine code formatting and whitespace. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/10/changes#detail1</link><guid isPermaLink="false">job/dev-bookmark-xapi/10/changes#detail1</guid><pubDate>Tue, 30 Jun 2026 14:14:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/SchoolDataSourceHttp.kt
</description></item><item><title>#10 Refine imports in `SchoolDataSourceDb.kt` and remove trailing whitespace in `OpdsPublicationEntityAdapter.kt`. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/10/changes#detail2</link><guid isPermaLink="false">job/dev-bookmark-xapi/10/changes#detail2</guid><pubDate>Tue, 30 Jun 2026 14:14: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/commonMain/kotlin/world/respect/datalayer/db/SchoolDataSourceDb.kt
</description></item><item><title>#10 Remove extraneous blank lines from documentation comments in `OpdsPublicationEntity.kt`. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/10/changes#detail3</link><guid isPermaLink="false">job/dev-bookmark-xapi/10/changes#detail3</guid><pubDate>Tue, 30 Jun 2026 14:14:00 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/opds/entities/OpdsPublicationEntity.kt
</description></item><item><title>#9 Add database schema files for versions 1 through 8 of `RespectAppDatabase`. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/9/changes#detail0</link><guid isPermaLink="false">job/dev-bookmark-xapi/9/changes#detail0</guid><pubDate>Tue, 30 Jun 2026 13:04:17 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/5.json
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/8.json
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/6.json
</description></item><item><title>#8 Update lesson visibility assertion in `002_browse_lessons_test.yaml`. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/8/changes#detail0</link><guid isPermaLink="false">job/dev-bookmark-xapi/8/changes#detail0</guid><pubDate>Tue, 30 Jun 2026 12:53:21 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
</description></item><item><title>#8 Add `BookmarkEntity` table to `RespectSchoolDatabase` schema and move Maestro test files to the `flows` directory. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/8/changes#detail1</link><guid isPermaLink="false">job/dev-bookmark-xapi/8/changes#detail1</guid><pubDate>Tue, 30 Jun 2026 12:53:21 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/test/001_003_login_using_school_link_test.yaml
.maestro/test/001_002_add_user_direct_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/test/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/test/003_admin_user_assigns_assignment_to_a_class_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>#8 Update school self-registration test and remove unused admin subflow. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/8/changes#detail2</link><guid isPermaLink="false">job/dev-bookmark-xapi/8/changes#detail2</guid><pubDate>Tue, 30 Jun 2026 12:53:21 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows-pending/001_005_add_school_self_registration_test.yaml
</description></item><item><title>#8 Update school self-registration test and remove unused admin subflow. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/8/changes#detail3</link><guid isPermaLink="false">job/dev-bookmark-xapi/8/changes#detail3</guid><pubDate>Tue, 30 Jun 2026 12:53:21 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/admin_add_app_and_teacher.yaml
</description></item><item><title>#8 Update `002_browse_lessons_test.yaml` to use `${output.TEST_APP_URL}` variable. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/8/changes#detail4</link><guid isPermaLink="false">job/dev-bookmark-xapi/8/changes#detail4</guid><pubDate>Tue, 30 Jun 2026 12:53:21 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
</description></item><item><title>#8 Update `002_browse_lessons_test.yaml` to use `${output.TEST_APP_URL}` variable. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/8/changes#detail5</link><guid isPermaLink="false">job/dev-bookmark-xapi/8/changes#detail5</guid><pubDate>Tue, 30 Jun 2026 12:53:21 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-http/src/commonMain/kotlin/world/respect/datalayer/http/school/BookmarkDataSourceHttp.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/adapters/BookmarkAdapter.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/BookmarkDataSource.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/RespectSchoolDatabase.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/entities/BookmarkEntity.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/BookmarkDataSourceDb.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/daos/BookmarkDao.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/BookmarkDataSourceLocal.kt
</description></item><item><title>#8 Update `002_browse_lessons_test.yaml` to use `${output.TEST_APP_URL}` variable. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/8/changes#detail6</link><guid isPermaLink="false">job/dev-bookmark-xapi/8/changes#detail6</guid><pubDate>Tue, 30 Jun 2026 12:53:21 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/5.json
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/6.json
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/8.json
</description></item><item><title>#8 Add database schema files for versions 1 through 8 of `RespectAppDatabase`. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/8/changes#detail7</link><guid isPermaLink="false">job/dev-bookmark-xapi/8/changes#detail7</guid><pubDate>Tue, 30 Jun 2026 12:53:21 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/3.json
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/6.json
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/8.json
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/5.json
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/1.json
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/4.json
respect-datalayer-db/schemas/world.respect.datalayer.db.RespectAppDatabase/2.json
</description></item><item><title>#6 Reorganize Maestro YAML files between flows and test directories. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/6/changes#detail0</link><guid isPermaLink="false">job/dev-bookmark-xapi/6/changes#detail0</guid><pubDate>Tue, 30 Jun 2026 10:27:35 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/test/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/test/002_browse_lessons_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
</description></item><item><title>#5 Update Maestro flow assertions to use "Home" instead of "Apps". (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/5/changes#detail0</link><guid isPermaLink="false">job/dev-bookmark-xapi/5/changes#detail0</guid><pubDate>Tue, 30 Jun 2026 10:05:36 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/subflows/admin_add_app.yaml
</description></item><item><title>#4 Remove redundant newline in `002_browse_lessons_test.yaml`. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/4/changes#detail0</link><guid isPermaLink="false">job/dev-bookmark-xapi/4/changes#detail0</guid><pubDate>Tue, 30 Jun 2026 09:43:02 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
</description></item><item><title>#4 Update Maestro flow assertions to use "Home" instead of "Apps". (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/4/changes#detail1</link><guid isPermaLink="false">job/dev-bookmark-xapi/4/changes#detail1</guid><pubDate>Tue, 30 Jun 2026 09:43:02 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/001_003_login_using_school_link_test.yaml
.maestro/test/001_003_login_using_school_link_test.yaml
.maestro/flows/002_browse_lessons_test.yaml
.maestro/test/001_002_add_user_direct_test.yaml
.maestro/flows/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/test/001_001_invite_users_using_qr_code_or_link_test.yaml
.maestro/flows/001_002_add_user_direct_test.yaml
.maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml
.maestro/test/002_browse_lessons_test.yaml
</description></item><item><title>#3 Initial design to run xAPI over Android Messenger IPC. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail0</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail0</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-client/proguard-rules.pro
respect-lib-xapi-ipc-server/src/main/AndroidManifest.xml
respect-lib-xapi-ipc-server/consumer-rules.pro
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/GetStatementParamsExt.kt
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiResourceIpcClient.kt
respect-lib-xapi-ipc-shared/src/main/AndroidManifest.xml
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/.gitignore
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/BundleExt.kt
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>#3 Work in progress: update IpcTestApplication to provide create a school database. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail1</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail1</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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>#3 Initial structure for reply/response IPC messenger. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail2</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail2</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.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/XapiIpcResourceFlags.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-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>#3 Initial working send/receive between IPC client and service. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail3</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail3</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageReply.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>#3 Integration test improvements: send actual xAPI statements. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail4</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail4</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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/MessageReply.kt
respect-lib-test-resources/src/androidMain/assets/xapistatements/appendix-a-long-statement.json
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/MessageData.kt
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-server/build.gradle.kts
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/MessageRequestSender.kt
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-test-resources/src/jvmMain/kotlin/world/respect/lib/test/res/XapiSampleStatements.kt
respect-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
respect-lib-test-resources/src/commonMain/kotlin/world/respect/lib/test/res/SampleXapiStatement.kt
respect-lib-test-resources/src/androidMain/assets/xapistatements/statement-with-object-statementref.json
</description></item><item><title>#3 Implement send/receive over IPC integration test. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail5</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail5</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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-util/build.gradle.kts
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/ext/StringValuesExt.kt
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>#3 Initial implementation of converters from DataLoadState to/from Bundle. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail6</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail6</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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-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/ext/GetStatementParamsExt.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>#3 Improve error handling for Xapi IPC messaging. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail7</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail7</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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>#3 Move XapiMessengerService to using its own thread. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail8</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail8</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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>#3 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-bookmark-xapi/3/changes#detail9</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail9</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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>#3 Refactor XapiResource post function to use DataLoadState (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail10</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail10</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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-lib-xapi-ipc-server/src/androidTest/java/world/respect/xapi/ipc/server/XapiServiceIntegrationTest.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/ext/HttpResponseExt.kt
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/XapiStatementsResourceIpcClient.kt
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiStatementsResourceDb.kt
</description></item><item><title>#3 Initial implementation of flow support for Xapi over IPC. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail11</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail11</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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/MessageData.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/XapiIpcResourceFlags.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/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>#3 Initial implementation of flow support for Xapi over IPC. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail12</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail12</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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-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/XapiMessageBridgeBinderImpl.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiMessengerService.kt
</description></item><item><title>#3 Standardize jvm version to 17 and add Xapi IPC Binder message bridge. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail13</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail13</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiMessageBridgeMessengerImpl.kt
respect-lib-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcIntent.kt
respect-lib-xapi-ipc-server/build.gradle.kts
respect-app-compose/src/androidMain/AndroidManifest.xml
respect-lib-xapi-core/build.gradle.kts
respect-lib-ihttp-iostreams/build.gradle.kts
respect-lib-ihttp-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
README.md
gradle.properties
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>#3 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-bookmark-xapi/3/changes#detail14</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail14</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/XapiResourceProvider.kt
respect-app-compose/src/androidMain/kotlin/world/respect/RespectApp.kt
respect-lib-xapi-ipc-server/src/androidTest/AndroidManifest.xml
</description></item><item><title>#3 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-bookmark-xapi/3/changes#detail15</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail15</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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-shared/src/commonMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCase.kt
respect-lib-xapi-ipc-shared/build.gradle.kts
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-server/src/main/resources/http/respect-ds/native_demo/appmanifest.json
respect-datalayer-db/src/commonMain/kotlin/world/respect/datalayer/db/school/xapi/XapiResourceDb.kt
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/launchapp/LaunchAppUseCaseAndroid.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-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>#3 Xapi over IPC: Send IPC service package name as a parameter. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail16</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail16</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/androidMain/kotlin/world/respect/shared/domain/xapi/getxapilaunchurl/GetXapiLaunchUrlUseCaseAndroid.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/launchapp/LaunchAppUseCaseAndroid.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>#3 Add Xapi IPC client builder class. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail17</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail17</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>gradle.properties
respect-lib-xapi-ipc-client/src/main/kotlin/world/respect/xapi/ipc/client/XapiIpcClientBuilder.kt
</description></item><item><title>#3 Introduce version as environment variable for use by test server controller. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail18</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail18</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-xapi-ipc-shared/README.md
build.gradle.kts
ci-run-maestro.sh
ci-run-test-server.sh
README.md
</description></item><item><title>#3 Fix ci-run-maestro script and make it quieter. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail19</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail19</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>ci-run-maestro.sh
</description></item><item><title>#3 Initial update to provide openeel assignment_id support on xAPI IPC service. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail20</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail20</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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>#3 Handle assignment recipe statement transform for (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail21</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail21</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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>#3 Bump version. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail22</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail22</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>gradle.properties
</description></item><item><title>#3 removed bookmark data source (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail23</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail23</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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-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/SchoolDataSourceLocal.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/school/writequeue/WriteQueueItem.kt
respect-datalayer/src/commonMain/kotlin/world/respect/datalayer/SchoolDataSource.kt
</description></item><item><title>#3 Remove unused XapiLocalInvalidation.kt and placeholders. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail24</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail24</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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>#3 Logging improvements for XapiIpc. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail25</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail25</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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-xapi-ipc-shared/src/main/kotlin/world/respect/xapi/ipc/shared/messages/XapiIpcKeys.kt
respect-lib-dataloadstate/src/commonMain/kotlin/world/respect/lib/dataloadstate/ext/DataLoadStateExt.kt
respect-lib-xapi-ipc-server/src/main/kotlin/world/respect/xapi/ipc/server/XapiIpcService.kt
</description></item><item><title>#3 Add ipc server package to logging messages. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail26</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail26</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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>#3 Minor: Spelling correction and remove unused imports. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail27</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail27</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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>#3 Update native demo case. (mike)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail28</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail28</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +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>#3 Refactor bookmark management to use xapi statements instead of a dedicated `BookmarkDataSource`. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail29</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail29</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt
respect-server/src/main/kotlin/world/respect/server/routes/school/respect/BookmarkRoute.kt
.maestro/flows/002_browse_lessons_test.yaml
respect-datalayer-repository/src/commonMain/kotlin/world/respect/datalayer/repository/school/BookmarkDataSourceRepository.kt
respect-lib-xapi-core/src/commonMain/kotlin/world/respect/lib/xapi/model/XapiVerb.kt
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt
respect-app-compose/src/commonMain/kotlin/world/respect/app/view/bookmark/BookmarkListScreen.kt
</description></item><item><title>#3 Sort bookmark statements by timestamp in `BookmarkListViewModel` and remove unused imports and test steps. (mandvi.verma)</title><link>https://devserver3.ustadmobile.com/jenkins/job/dev-bookmark-xapi/3/changes#detail30</link><guid isPermaLink="false">job/dev-bookmark-xapi/3/changes#detail30</guid><pubDate>Mon, 29 Jun 2026 15:56:38 +0400</pubDate><author>no-reply@ustadmobile.com</author><description>.maestro/flows/002_browse_lessons_test.yaml
respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/bookmark/BookmarkListViewModel.kt
respect-app-compose/src/androidMain/kotlin/world/respect/AppKoinModule.kt
</description></item></channel></rss>