{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.TimerTrigger$TimerTriggerCause",
          "shortDescription" : "Started by timer"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/main" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 169,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "f6d691a42d44b9b5f71b0d7fe55a8101d7a2a3ba",
            "branch" : [
              {
                "SHA1" : "f6d691a42d44b9b5f71b0d7fe55a8101d7a2a3ba",
                "name" : "refs/remotes/origin/main"
              }
            ]
          },
          "revision" : {
            "SHA1" : "f6d691a42d44b9b5f71b0d7fe55a8101d7a2a3ba",
            "branch" : [
              {
                "SHA1" : "f6d691a42d44b9b5f71b0d7fe55a8101d7a2a3ba",
                "name" : "refs/remotes/origin/main"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "f6d691a42d44b9b5f71b0d7fe55a8101d7a2a3ba",
        "branch" : [
          {
            "SHA1" : "f6d691a42d44b9b5f71b0d7fe55a8101d7a2a3ba",
            "name" : "refs/remotes/origin/main"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/UstadMobile/Respect.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    {
      "displayPath" : "respect-app-compose-debug.apk",
      "fileName" : "respect-app-compose-debug.apk",
      "relativePath" : "respect-app-compose/build/outputs/apk/debug/respect-app-compose-debug.apk"
    },
    {
      "displayPath" : "respect-app-compose-release.apk",
      "fileName" : "respect-app-compose-release.apk",
      "relativePath" : "respect-app-compose/build/outputs/apk/release/respect-app-compose-release.apk"
    },
    {
      "displayPath" : "respect-app-compose-debug.aab",
      "fileName" : "respect-app-compose-debug.aab",
      "relativePath" : "respect-app-compose/build/outputs/bundle/debug/respect-app-compose-debug.aab"
    },
    {
      "displayPath" : "respect-app-compose-release.aab",
      "fileName" : "respect-app-compose-release.aab",
      "relativePath" : "respect-app-compose/build/outputs/bundle/release/respect-app-compose-release.aab"
    },
    {
      "displayPath" : "mapping.txt",
      "fileName" : "mapping.txt",
      "relativePath" : "respect-app-compose/build/outputs/mapping/release/mapping.txt"
    },
    {
      "displayPath" : "respect-cli.zip",
      "fileName" : "respect-cli.zip",
      "relativePath" : "respect-cli/build/distributions/respect-cli.zip"
    },
    {
      "displayPath" : "respect-server-1.0.0.zip",
      "fileName" : "respect-server-1.0.0.zip",
      "relativePath" : "respect-server/build/distributions/respect-server-1.0.0.zip"
    },
    {
      "displayPath" : "respect-server-shadow-1.0.0.zip",
      "fileName" : "respect-server-shadow-1.0.0.zip",
      "relativePath" : "respect-server/build/distributions/respect-server-shadow-1.0.0.zip"
    }
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#169",
  "duration" : 152987,
  "estimatedDuration" : 150539,
  "executor" : None,
  "fullDisplayName" : "RESPECT-Primary #169",
  "id" : "169",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 169,
  "queueId" : 4091,
  "result" : "SUCCESS",
  "timestamp" : 1762175460957,
  "url" : "https://devserver3.ustadmobile.com/jenkins/job/RESPECT-Primary/169/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows-in-progress/001_003_student_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/003_create_classes_test.yaml",
          ".maestro/flows-in-progress/001_002_Parent_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml",
          "respect-test-end-to-end/test-description/001_browse_lessons_test_description.md",
          ".maestro/flows/001_001_user_login_to_app_with_school_name_test.yaml",
          ".maestro/flows-in-progress/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml",
          ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows-in-progress/001_001_user_login_to _app_with_school_name_test.yaml",
          ".maestro/flows-in-progress/003_create_classes_test.yaml",
          ".maestro/flows/subflows/school_admin_login_flow.yaml"
        ],
        "commitId" : "8578fce01ec019400d74a7e49474332047c98fec",
        "timestamp" : 1759836032000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated maestro flows\u000a",
        "date" : "2025-10-07 15:20:32 +0400",
        "id" : "8578fce01ec019400d74a7e49474332047c98fec",
        "msg" : "Updated maestro flows",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/test-description/001_browse_lessons_test_description.md"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/001_003_student_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/001_001_user_login_to _app_with_school_name_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/003_create_classes_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_001_user_login_to_app_with_school_name_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/003_create_classes_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/school_admin_login_flow.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/000_000_hello_world.yaml",
          ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows-in-progress/001_003_student_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/003_create_classes_test.yaml",
          ".maestro/flows/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml",
          ".maestro/flows-in-progress/001_002_Parent_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/001_001_user_login_to_app_with_school_name_test.yaml",
          ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml"
        ],
        "commitId" : "0c242733a69d53cd038d211958c6da4757be9db6",
        "timestamp" : 1759839885000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Main tests ready\u000a",
        "date" : "2025-10-07 16:24:45 +0400",
        "id" : "0c242733a69d53cd038d211958c6da4757be9db6",
        "msg" : "Main tests ready",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/000_000_hello_world.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_003_student_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows-in-progress/001_003_student_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/003_create_classes_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows-in-progress/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_001_user_login_to_app_with_school_name_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/003_001_create_classes_test.yaml",
          ".maestro/flows/003_create_classes_test.yaml"
        ],
        "commitId" : "aac181ece9b304528cbd7e8e7b57a54ea3d2b268",
        "timestamp" : 1759903772000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "renamed the test\u000a",
        "date" : "2025-10-08 10:09:32 +0400",
        "id" : "aac181ece9b304528cbd7e8e7b57a54ea3d2b268",
        "msg" : "renamed the test",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flows/003_001_create_classes_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/003_create_classes_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_001_user_login_to_app_with_school_name_test.yaml",
          ".maestro/flows/003_001_create_classes_test.yaml",
          ".maestro/flows-in-progress/001_003_student_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml",
          ".maestro/flows-in-progress/001_002_Parent_user_join_class_using_invitecode_test.yaml"
        ],
        "commitId" : "526bcc79257a95ed595a75d32095e3be8b6d0beb",
        "timestamp" : 1759922289000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Added teardown to the tests\u000a",
        "date" : "2025-10-08 15:18:09 +0400",
        "id" : "526bcc79257a95ed595a75d32095e3be8b6d0beb",
        "msg" : "Added teardown to the tests",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_001_user_login_to_app_with_school_name_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/003_001_create_classes_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows-in-progress/001_003_student_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows-in-progress/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_001_user_login_to_app_with_school_name_test.yaml",
          ".maestro/flows/003_001_create_classes_test.yaml",
          ".maestro/flows/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml"
        ],
        "commitId" : "96e3b4a78e8f877f6525ff4e4d6690d2d49be4ac",
        "timestamp" : 1759974043000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Add test name as a parameter to school_init.js\u000a",
        "date" : "2025-10-08 21:40:43 -0400",
        "id" : "96e3b4a78e8f877f6525ff4e4d6690d2d49be4ac",
        "msg" : "Add test name as a parameter to school_init.js",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_001_user_login_to_app_with_school_name_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/003_001_create_classes_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/002_001_user_add_app_via_link_and_browse_lessons_test.yaml",
          ".maestro/flows/001_004_teacher_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml",
          ".maestro/flows/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml"
        ],
        "commitId" : "0e381b126ca7e1e872d8a30f2710ceca86116554",
        "timestamp" : 1760100073000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Added new tests\u000a",
        "date" : "2025-10-10 16:41:13 +0400",
        "id" : "0e381b126ca7e1e872d8a30f2710ceca86116554",
        "msg" : "Added new tests",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flows/002_001_user_add_app_via_link_and_browse_lessons_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_004_user_login_via_invite_link_and_browse_lessons_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_004_teacher_user_join_class_using_invitecode_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows-in-progress/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml",
          ".maestro/flows/001_004_teacher_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows-in-progress/001_004_teacher_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml"
        ],
        "commitId" : "0e3318e3a6e0403db39865022c00cf4c09cb2e9e",
        "timestamp" : 1760101646000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Moved failed tests to Flow_in_progress\u000a",
        "date" : "2025-10-10 17:07:26 +0400",
        "id" : "0e3318e3a6e0403db39865022c00cf4c09cb2e9e",
        "msg" : "Moved failed tests to Flow_in_progress",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flows-in-progress/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_004_teacher_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows-in-progress/001_004_teacher_user_join_class_using_invitecode_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows-in-progress/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml",
          ".maestro/flows-in-progress/001_004_teacher_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml",
          ".maestro/flows-in-progress/001_003_student_user_join_class_using_invitecode_test.yaml",
          ".maestro/flows-in-progress/001_002_Parent_user_join_class_using_invitecode_test.yaml"
        ],
        "commitId" : "5746fef6ec7e5b5285d25c899a6c49c2e6382b21",
        "timestamp" : 1760510243000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Removed signup flow tests also added a test to login via link\u000a",
        "date" : "2025-10-15 10:37:23 +0400",
        "id" : "5746fef6ec7e5b5285d25c899a6c49c2e6382b21",
        "msg" : "Removed signup flow tests also added a test to login via link",
        "paths" : [
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/001_002_Parent_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/001_003_student_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/001_004_teacher_user_join_class_using_invitecode_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml"
        ],
        "commitId" : "fca6563cf930ab1dcaee07fd6a63463bf318a6eb",
        "timestamp" : 1760511397000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated  the error\u000a",
        "date" : "2025-10-15 10:56:37 +0400",
        "id" : "fca6563cf930ab1dcaee07fd6a63463bf318a6eb",
        "msg" : "Updated  the error",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml",
          ".maestro/flows/002_001_user_add_app_via_link_and_browse_lessons_test.yaml"
        ],
        "commitId" : "5df16aebe81384af63640b6c26b2747957280055",
        "timestamp" : 1760512281000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated  the school url\u000a",
        "date" : "2025-10-15 11:11:21 +0400",
        "id" : "5df16aebe81384af63640b6c26b2747957280055",
        "msg" : "Updated  the school url",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/002_001_user_add_app_via_link_and_browse_lessons_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml"
        ],
        "commitId" : "459ebdebb5a78df649caefa89b88c6f6bf3e96c7",
        "timestamp" : 1760513336000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "minor fix\u000a",
        "date" : "2025-10-15 11:28:56 +0400",
        "id" : "459ebdebb5a78df649caefa89b88c6f6bf3e96c7",
        "msg" : "minor fix",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/test-description/001_002_admin_add_class_and_members_test_description.md",
          "respect-test-end-to-end/README.md",
          "respect-test-end-to-end/test-description/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test_description.md",
          "respect-test-end-to-end/test-description/001_001_admin_login_with_school_url_test_description.md",
          "respect-test-end-to-end/test-description/001_browse_lessons_test_description.md",
          "respect-test-end-to-end/test-description/001_004_add_app_via_link_and_browse_lessons_test_description.md",
          "respect-test-end-to-end/test-description/004_create_report_test_description.md"
        ],
        "commitId" : "2fe54bd23b973d565ae939f6bb7f337add2b1411",
        "timestamp" : 1760530562000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated test description\u000a",
        "date" : "2025-10-15 16:16:02 +0400",
        "id" : "2fe54bd23b973d565ae939f6bb7f337add2b1411",
        "msg" : "Updated test description",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "respect-test-end-to-end/test-description/004_create_report_test_description.md"
          },
          {
            "editType" : "add",
            "file" : "respect-test-end-to-end/test-description/001_002_admin_add_class_and_members_test_description.md"
          },
          {
            "editType" : "add",
            "file" : "respect-test-end-to-end/test-description/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test_description.md"
          },
          {
            "editType" : "delete",
            "file" : "respect-test-end-to-end/test-description/001_browse_lessons_test_description.md"
          },
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/README.md"
          },
          {
            "editType" : "add",
            "file" : "respect-test-end-to-end/test-description/001_004_add_app_via_link_and_browse_lessons_test_description.md"
          },
          {
            "editType" : "add",
            "file" : "respect-test-end-to-end/test-description/001_001_admin_login_with_school_url_test_description.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/test-description/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test_description.md"
        ],
        "commitId" : "06e409f67112f93a3e5dc1e3d7d82b50feb31997",
        "timestamp" : 1760602548000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated test description\u000a",
        "date" : "2025-10-16 12:15:48 +0400",
        "id" : "06e409f67112f93a3e5dc1e3d7d82b50feb31997",
        "msg" : "Updated test description",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/test-description/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test_description.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/README.md"
        ],
        "commitId" : "d09ece450602a38c79eec46dca5fd6b115453818",
        "timestamp" : 1760602900000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated ReadMe\u000a",
        "date" : "2025-10-16 12:21:40 +0400",
        "id" : "d09ece450602a38c79eec46dca5fd6b115453818",
        "msg" : "Updated ReadMe",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/README.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/README.md"
        ],
        "commitId" : "528818596e82ec73174e5a9b45d035171d33e712",
        "timestamp" : 1760603262000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated ReadMe\u000a",
        "date" : "2025-10-16 12:27:42 +0400",
        "id" : "528818596e82ec73174e5a9b45d035171d33e712",
        "msg" : "Updated ReadMe",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/README.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/002_001_user_add_app_via_link_and_browse_lessons_test.yaml",
          ".maestro/flows/001_004_add_app_via_link_and_browse_lessons_test.yaml",
          ".maestro/flows/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml",
          ".maestro/flows/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test.yaml",
          ".maestro/flows/001_001_user_login_to_app_with_school_name_test.yaml",
          "respect-test-end-to-end/test-description/001_004_add_app_via_link_and_browse_lessons_test_description.md",
          ".maestro/flows/003_001_create_classes_test.yaml",
          ".maestro/flows/001_001_admin_login_with_school_url_test.yaml"
        ],
        "commitId" : "d182ef86df7691e6dc0e2c2228dd99506a26804f",
        "timestamp" : 1760612312000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated tests\u000a",
        "date" : "2025-10-16 14:58:32 +0400",
        "id" : "d182ef86df7691e6dc0e2c2228dd99506a26804f",
        "msg" : "Updated tests",
        "paths" : [
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_002_user_login_to_app_with_link_provided_by_admin_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_001_user_login_to_app_with_school_name_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/002_001_user_add_app_via_link_and_browse_lessons_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : "respect-test-end-to-end/test-description/001_004_add_app_via_link_and_browse_lessons_test_description.md"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/003_001_create_classes_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_001_admin_login_with_school_url_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_004_add_app_via_link_and_browse_lessons_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test.yaml"
        ],
        "commitId" : "fa98ef88962bf1bdc5ef3387bb4ab0ffb1874307",
        "timestamp" : 1760622466000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated tests\u000a",
        "date" : "2025-10-16 17:47:46 +0400",
        "id" : "fa98ef88962bf1bdc5ef3387bb4ab0ffb1874307",
        "msg" : "Updated tests",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test.yaml"
        ],
        "commitId" : "3731b82cc7f4d0062837d4984fc43575d25116e4",
        "timestamp" : 1760626480000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated tests\u000a",
        "date" : "2025-10-16 18:54:40 +0400",
        "id" : "3731b82cc7f4d0062837d4984fc43575d25116e4",
        "msg" : "Updated tests",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test.yaml"
        ],
        "commitId" : "36eea9e8fa3ee9f1f0f597f99d6bd81376e837a0",
        "timestamp" : 1760628263000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated tests\u000a",
        "date" : "2025-10-16 19:24:23 +0400",
        "id" : "36eea9e8fa3ee9f1f0f597f99d6bd81376e837a0",
        "msg" : "Updated tests",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test.yaml"
        ],
        "commitId" : "b18b14ebbc8f5fa16c39ab7c2c10a99a776359b0",
        "timestamp" : 1760689295000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated phone verification tests\u000a",
        "date" : "2025-10-17 12:21:35 +0400",
        "id" : "b18b14ebbc8f5fa16c39ab7c2c10a99a776359b0",
        "msg" : "Updated phone verification tests",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/subflows/teardown.js",
          ".maestro/flow-passkey/scripts/setDate.js",
          ".maestro/flows/001_004_add_app_via_link_and_browse_lessons_test.yaml",
          ".maestro/flows/scripts/school_init.js",
          ".maestro/flow-passkey/scripts/teardown.js",
          ".maestro/flow-passkey/subflows/choose_passkey_prompt_cancel.yaml",
          ".maestro/flow-passkey/subflows/choose_passkey_prompt.yaml",
          ".maestro/flows/000_000_hello_world.yaml",
          ".maestro/flow-passkey/subflows/school_user_passkey_login_flow.yaml",
          ".maestro/flows/scripts/teardown.js",
          ".maestro/flows/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test.yaml",
          ".maestro/flows/scripts/setDate.js",
          ".maestro/flow-passkey/subflows/create_passkey_to_sign_in_flow.yaml",
          ".maestro/flow-passkey/scripts/school_init.js",
          ".maestro/flow-passkey/subflows/get_started_select_school_by_name.yaml",
          ".maestro/flows/subflows/school_init.js",
          ".maestro/flow-passkey/subflows/save_password_prompt_cancel.yaml",
          ".maestro/flows/subflows/setDate.js",
          ".maestro/flows/001_001_admin_login_with_school_url_test.yaml",
          ".maestro/flow-passkey/001_Passkey_test.yaml",
          ".maestro/flow-passkey/subflows/school_admin_login_flow.yaml"
        ],
        "commitId" : "19da568d4bcc5c07093a550c5e09202b4e8ac304",
        "timestamp" : 1761139541000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "Updated folder structure and passkey test added\u000a",
        "date" : "2025-10-22 17:25:41 +0400",
        "id" : "19da568d4bcc5c07093a550c5e09202b4e8ac304",
        "msg" : "Updated folder structure and passkey test added",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flow-passkey/subflows/school_user_passkey_login_flow.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/scripts/setDate.js"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flow-passkey/subflows/get_started_select_school_by_name.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flow-passkey/001_Passkey_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flow-passkey/subflows/choose_passkey_prompt_cancel.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flow-passkey/subflows/save_password_prompt_cancel.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flow-passkey/subflows/choose_passkey_prompt.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flow-passkey/subflows/school_admin_login_flow.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flow-passkey/subflows/create_passkey_to_sign_in_flow.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flow-passkey/scripts/setDate.js"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/000_000_hello_world.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/subflows/setDate.js"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_004_add_app_via_link_and_browse_lessons_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flow-passkey/scripts/teardown.js"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/subflows/teardown.js"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/scripts/school_init.js"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/subflows/school_init.js"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/scripts/teardown.js"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_001_admin_login_with_school_url_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flow-passkey/scripts/school_init.js"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "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-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt",
          "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt"
        ],
        "commitId" : "804918720688c1622c4e4092965593fca71f10c4",
        "timestamp" : 1761563552000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "refactor: Simplify image selection and remove unused constant\u000a\u000aThis commit refactors how publication images are selected across multiple screens, simplifying the logic to use the first available image instead of searching for a specific image type.\u000a\u000aThe `IMAGE` constant (`\"image/png\"`) in `LearningUnitDetailViewModel` was removed as it was no longer needed.\u000a\u000aKey changes:\u000a- In `LearningUnitListScreen.kt`, `AppsDetailScreen.kt`, and `LearningUnitDetailScreen.kt`, the image selection logic is updated from `find { it.type?.contains(IMAGE) == true }` to `firstOrNull()`.\u000a- The unused `IMAGE` constant and its companion object have been removed from `LearningUnitDetailViewModel.kt`.\u000a",
        "date" : "2025-10-27 16:42:32 +0530",
        "id" : "804918720688c1622c4e4092965593fca71f10c4",
        "msg" : "refactor: Simplify image selection and remove unused constant",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/list/LearningUnitListScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/learningunit/detail/LearningUnitDetailScreen.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-app-compose/src/commonMain/kotlin/world/respect/app/view/apps/detail/AppsDetailScreen.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt"
        ],
        "commitId" : "0f28f82d80ba05de4797e162eb88a50f9b31386f",
        "timestamp" : 1761714940000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "refactor: Resolve URLs to absolute paths in OPDS feed\u000a\u000aThe changes apply to `navigation`, `publications`, and `groups` within the feed, making sure that all `href` attributes in links, images, and alternates are converted to full, absolute URLs.\u000a",
        "date" : "2025-10-29 10:45:40 +0530",
        "id" : "0f28f82d80ba05de4797e162eb88a50f9b31386f",
        "msg" : "refactor: Resolve URLs to absolute paths in OPDS feed",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt"
        ],
        "commitId" : "e1f4b131b1761e10eb3a847fe72675b2ed26f0a7",
        "timestamp" : 1761715298000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "refactor: Resolve URLs to be absolute in `AppsDetailViewModel`\u000a\u000aThis commit updates the `AppsDetailViewModel` to resolve relative URLs from the manifest to absolute URLs.\u000a",
        "date" : "2025-10-29 10:51:38 +0530",
        "id" : "e1f4b131b1761e10eb3a847fe72675b2ed26f0a7",
        "msg" : "refactor: Resolve URLs to be absolute in `AppsDetailViewModel`",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt"
        ],
        "commitId" : "0c4f1863bd136054a4b5faf1da985effb4463935",
        "timestamp" : 1761735383000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "feat: Resolve lesson image URLs to absolute paths\u000a\u000aThis commit updates the `LearningUnitDetailViewModel` to resolve relative image URLs to absolute URLs when fetching lesson details.\u000a",
        "date" : "2025-10-29 16:26:23 +0530",
        "id" : "0c4f1863bd136054a4b5faf1da985effb4463935",
        "msg" : "feat: Resolve lesson image URLs to absolute paths",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt"
        ],
        "commitId" : "196e34441fc24066ead47d57a706e130fd419dac",
        "timestamp" : 1761736575000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "feat: Resolve lesson image URLs to absolute paths\u000a\u000aThis commit updates the `LearningUnitDetailViewModel` to resolve relative image URLs to absolute URLs when fetching lesson details.\u000a",
        "date" : "2025-10-29 16:46:15 +0530",
        "id" : "196e34441fc24066ead47d57a706e130fd419dac",
        "msg" : "feat: Resolve lesson image URLs to absolute paths",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt",
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt"
        ],
        "commitId" : "168f3a57475cce7e963728ce3adde7c126d5ace5",
        "timestamp" : 1761813905000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "refactor: Standardize variable name for publication\u000a\u000aThis commit renames the local variable from `pub` to `publication` for better clarity and consistency when iterating over publication lists.\u000a",
        "date" : "2025-10-30 14:15:05 +0530",
        "id" : "168f3a57475cce7e963728ce3adde7c126d5ace5",
        "msg" : "refactor: Standardize variable name for publication",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsFeedExt.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/learningunit/list/LearningUnitListViewModel.kt"
        ],
        "commitId" : "50a0950973e0e08f8228c8a7698cce7b207bf285",
        "timestamp" : 1761901726000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
          "fullName" : "mandvi.verma"
        },
        "authorEmail" : "mandvi.verma@sutara.org",
        "comment" : "refactor: Centralize OPDS feed URL resolution,\u000aremoving duplicated code and simplifying the view models.\u000a\u000aKey changes:\u000a- A new `OpdsFeed.resolve(baseUrl: Url)` extension function has been created in `OpdsFeedExt.kt` to handle the resolution of all relative URLs within an `OpdsFeed` object (including publications, navigation links, and groups).\u000a- `LearningUnitListViewModel` now uses `result.data.resolve(route.opdsFeedUrl)` to process the feed data, simplifying the logic for updating the UI state.\u000a- `AppsDetailViewModel` has been similarly updated to use `result.data.resolve(route.manifestUrl)`.\u000a",
        "date" : "2025-10-31 14:38:46 +0530",
        "id" : "50a0950973e0e08f8228c8a7698cce7b207bf285",
        "msg" : "refactor: Centralize OPDS feed URL resolution,",
        "paths" : [
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsFeedExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/list/LearningUnitListViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_004_add_app_via_link_and_browse_lessons_test.yaml",
          ".maestro/flows/002_browse_lessons_test.yaml",
          ".maestro/flow-passkey/006_user_signup_using_passkey_test.yaml",
          ".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-in-progress/001_001_invite_using_invite_code_test.yaml",
          ".maestro/flows-in-progress/004_create_report_test.yaml",
          ".maestro/flows/001_003_login_using_school_link_test.yaml",
          ".maestro/flows/000_000_hello_world.yaml",
          ".maestro/flows/subflows/save_password_prompt_cancel.yaml",
          ".maestro/flows/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test.yaml",
          ".maestro/flows/scripts/setDate.js",
          ".maestro/flows/001_001_admin_login_with_school_url_test.yaml",
          ".maestro/flow-passkey/001_Passkey_test.yaml",
          ".maestro/flows/subflows/school_admin_login_flow.yaml"
        ],
        "commitId" : "3f0a6166071b155d785b2d6171719e63d85a5714",
        "timestamp" : 1761907481000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated test flows\u000a",
        "date" : "2025-10-31 14:44:41 +0400",
        "id" : "3f0a6166071b155d785b2d6171719e63d85a5714",
        "msg" : "updated test flows",
        "paths" : [
          {
            "editType" : "add",
            "file" : ".maestro/flows-in-progress/001_001_invite_using_invite_code_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/subflows/save_password_prompt_cancel.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/subflows/admin_add_app_and_teacher.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flow-passkey/001_Passkey_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_001_admin_login_with_school_url_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/002_browse_lessons_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flow-passkey/006_user_signup_using_passkey_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/001_003_login_using_school_link_test.yaml"
          },
          {
            "editType" : "add",
            "file" : ".maestro/flows/003_admin_user_assigns_assignment_to_a_class_test.yaml"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows-in-progress/004_create_report_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/000_000_hello_world.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/scripts/setDate.js"
          },
          {
            "editType" : "delete",
            "file" : ".maestro/flows/001_004_add_app_via_link_and_browse_lessons_test.yaml"
          },
          {
            "editType" : "edit",
            "file" : ".maestro/flows/subflows/school_admin_login_flow.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_add_user_direct_test.yaml"
        ],
        "commitId" : "4782cffac6e9aa115bf6fd60b73442eabb39375b",
        "timestamp" : 1761909457000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated phone number\u000a",
        "date" : "2025-10-31 15:17:37 +0400",
        "id" : "4782cffac6e9aa115bf6fd60b73442eabb39375b",
        "msg" : "updated phone number",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_add_user_direct_test.yaml"
        ],
        "commitId" : "8bf1101eb7832df3ed1bf94e4e41577c888275f7",
        "timestamp" : 1761910608000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated phone number\u000a",
        "date" : "2025-10-31 15:36:48 +0400",
        "id" : "8bf1101eb7832df3ed1bf94e4e41577c888275f7",
        "msg" : "updated phone number",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_add_user_direct_test.yaml"
        ],
        "commitId" : "b3b230c74236ea966f8f8313ef64a782a349b933",
        "timestamp" : 1761912450000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated phone number\u000a",
        "date" : "2025-10-31 16:07:30 +0400",
        "id" : "b3b230c74236ea966f8f8313ef64a782a349b933",
        "msg" : "updated phone number",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_add_user_direct_test.yaml"
        ],
        "commitId" : "d37f3eff807688dc6154f81df03eefb4252c1759",
        "timestamp" : 1761913344000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "updated valid phone number\u000a",
        "date" : "2025-10-31 16:22:24 +0400",
        "id" : "d37f3eff807688dc6154f81df03eefb4252c1759",
        "msg" : "updated valid phone number",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/001_002_add_user_direct_test.yaml"
        ],
        "commitId" : "c4b99dd9775c4710c2d35f070c79d36e4b87e045",
        "timestamp" : 1761916018000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "added countrycode id\u000a",
        "date" : "2025-10-31 17:06:58 +0400",
        "id" : "c4b99dd9775c4710c2d35f070c79d36e4b87e045",
        "msg" : "added countrycode id",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/001_002_add_user_direct_test.yaml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-test-end-to-end/test-description/001_002_admin_add_class_and_members_test_description.md",
          "respect-test-end-to-end/test-description/001_004_add_app_via_link_and_browse_lessons_test_description.md",
          "respect-test-end-to-end/test-description/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test_description.md",
          "respect-test-end-to-end/test-description/001_001_admin_login_with_school_url_test_description.md"
        ],
        "commitId" : "d466e57cb03f63ed6fd107bea4c6da94becd6d07",
        "timestamp" : 1761920111000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
          "fullName" : "Pooja Ravi"
        },
        "authorEmail" : "pooja@ustadmobile.com",
        "comment" : "deleted descriptions\u000a",
        "date" : "2025-10-31 18:15:11 +0400",
        "id" : "d466e57cb03f63ed6fd107bea4c6da94becd6d07",
        "msg" : "deleted descriptions",
        "paths" : [
          {
            "editType" : "delete",
            "file" : "respect-test-end-to-end/test-description/001_004_add_app_via_link_and_browse_lessons_test_description.md"
          },
          {
            "editType" : "delete",
            "file" : "respect-test-end-to-end/test-description/001_003_admin_create_a_person_and_validate_user_login_and_credentials_test_description.md"
          },
          {
            "editType" : "delete",
            "file" : "respect-test-end-to-end/test-description/001_001_admin_login_with_school_url_test_description.md"
          },
          {
            "editType" : "delete",
            "file" : "respect-test-end-to-end/test-description/001_002_admin_add_class_and_members_test_description.md"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsFeedExt.kt",
          "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-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt"
        ],
        "commitId" : "3e7ac41bfc3a5172b6d1de31f7aec5e4acab12fc",
        "timestamp" : 1762090763000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Tidyup resolve function.\u000a\u000aUse try/catch on feed resolve to log instead of crashing directly (as a validator would catch it).\u000a",
        "date" : "2025-11-02 17:39:23 +0400",
        "id" : "3e7ac41bfc3a5172b6d1de31f7aec5e4acab12fc",
        "msg" : "Tidyup resolve function.",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/apps/detail/AppsDetailViewModel.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsPublicationExt.kt"
          },
          {
            "editType" : "add",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/ReadiumLinkExt.kt"
          },
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/util/ext/OpdsFeedExt.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt"
        ],
        "commitId" : "1b0c73b003af6830e5523423a78c001755946385",
        "timestamp" : 1762090999000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Tidyup LearningUnitDetailViewModel to use resolve function\u000a",
        "date" : "2025-11-02 17:43:19 +0400",
        "id" : "1b0c73b003af6830e5523423a78c001755946385",
        "msg" : "Tidyup LearningUnitDetailViewModel to use resolve function",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "respect-lib-shared/src/commonMain/kotlin/world/respect/shared/viewmodel/learningunit/detail/LearningUnitDetailViewModel.kt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          ".maestro/flows/002_browse_lessons_test.yaml"
        ],
        "commitId" : "f6d691a42d44b9b5f71b0d7fe55a8101d7a2a3ba",
        "timestamp" : 1762095272000,
        "author" : {
          "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
          "fullName" : "Mike Dawson"
        },
        "authorEmail" : "mike@ustadmobile.com",
        "comment" : "Remove incorrect assertion on 002_browse_lessons_test.yaml\u000a\u000aLearning unit detail is expected to show the category title in the title bar, and the lesson title in the detail itself. The final test assertion was wrong.\u000a",
        "date" : "2025-11-02 18:54:32 +0400",
        "id" : "f6d691a42d44b9b5f71b0d7fe55a8101d7a2a3ba",
        "msg" : "Remove incorrect assertion on 002_browse_lessons_test.yaml",
        "paths" : [
          {
            "editType" : "edit",
            "file" : ".maestro/flows/002_browse_lessons_test.yaml"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mandvi.verma",
      "fullName" : "mandvi.verma"
    },
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/mike",
      "fullName" : "Mike Dawson"
    },
    {
      "absoluteUrl" : "https://devserver3.ustadmobile.com/jenkins/user/pooja",
      "fullName" : "Pooja Ravi"
    }
  ]
}