[
  {
    "fragmentId": "method:p4hxqo:oninitializedasync__fragment",
    "ownerFileId": "file:1ain1yo:mainhublayout-razor",
    "ownerSymbolId": "method:p4hxqo:oninitializedasync",
    "ownerSymbolName": "OnInitializedAsync",
    "entryNodeId": "method:p4hxqo:oninitializedasync__entry",
    "exitNodeIds": [
      "method:p4hxqo:oninitializedasync__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:p4hxqo:oninitializedasync__entry",
        "kind": "entry",
        "label": "OnInitializedAsync entry",
        "line": 94,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.99,
        "detail": "Component initialization: avoids duplicate syncs, checks authentication state, and attempts to sync profile from server if the user is not authenticated."
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__condition",
        "kind": "condition",
        "label": "_isSyncing",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7,
        "detail": "if (_isSyncing) return;"
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__true",
        "kind": "branch-true",
        "label": "return",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__false",
        "kind": "branch-false",
        "label": "continue",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge",
        "kind": "statement",
        "label": "merge",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition",
        "kind": "condition",
        "label": "_isSyncing",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.9,
        "detail": "if (_isSyncing) return;"
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true",
        "kind": "branch-true",
        "label": "exit",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.9
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false",
        "kind": "branch-false",
        "label": "continue",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.9
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
        "kind": "statement",
        "label": "merge",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.9
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_98_oninitializedasync_await_98_1__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 98,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.81,
        "detail": "var authState = await AuthStateProvider.GetAuthenticationStateAsync();"
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_98_external_call_98__linear",
        "kind": "http-call",
        "label": "Read authentication state",
        "line": 98,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7,
        "detail": "await AuthStateProvider.GetAuthenticationStateAsync() (framework call)"
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__condition",
        "kind": "condition",
        "label": "!authState.User.Identity?.IsAuthenticated ?? true",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7,
        "detail": "Sets _isSyncing and attempts a server-side profile sync to reconcile cookie/session state."
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__true",
        "kind": "branch-true",
        "label": "set _isSyncing true",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__false",
        "kind": "branch-false",
        "label": "call IdentityService.GetProfileAsync",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__merge",
        "kind": "statement",
        "label": "merge",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__condition",
        "kind": "condition",
        "label": "!authState.User.Identity?.IsAuthenticated ?? true",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.78,
        "detail": "if (!authState.User.Identity?.IsAuthenticated ?? true)"
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__true",
        "kind": "branch-true",
        "label": "true",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.78
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__false",
        "kind": "branch-false",
        "label": "false",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.78
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
        "kind": "statement",
        "label": "merge",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.78
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_101_state_change_101__linear",
        "kind": "statement",
        "label": "Mark sync in progress",
        "line": 101,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7,
        "detail": "_isSyncing = true"
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_103_oninitializedasync_await_103_3__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 103,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.81,
        "detail": "await IdentityService.GetProfileAsync();"
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_103_external_call_103__linear",
        "kind": "http-call",
        "label": "Attempt to fetch profile from server",
        "line": 103,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7,
        "detail": "await IdentityService.GetProfileAsync(); (project service)"
      },
      {
        "id": "method:p4hxqo:oninitializedasync__call_103_GetProfileAsync",
        "kind": "call",
        "label": "GetProfileAsync",
        "line": 103,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.88,
        "detail": "none"
      },
      {
        "id": "method:p4hxqo:oninitializedasync__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 105,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:p4hxqo:oninitializedasync__entry__method:p4hxqo:oninitializedasync__action_96_guard_clause_96__condition",
        "from": "method:p4hxqo:oninitializedasync__entry",
        "to": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__condition",
        "kind": "next",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__condition__method:p4hxqo:oninitializedasync__action_96_guard_clause_96__true",
        "from": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__condition",
        "to": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__true",
        "kind": "condition-true",
        "label": "return",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__condition__method:p4hxqo:oninitializedasync__action_96_guard_clause_96__false",
        "from": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__condition",
        "to": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__false",
        "kind": "condition-false",
        "label": "continue",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__true__method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge",
        "from": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__true",
        "to": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge",
        "kind": "next",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__false__method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge",
        "from": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__false",
        "to": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge",
        "kind": "next",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge__method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition",
        "from": "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge",
        "to": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition",
        "kind": "next",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.9
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition__method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true",
        "from": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition",
        "to": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true",
        "kind": "condition-true",
        "label": "exit",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.9
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition__method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false",
        "from": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__condition",
        "to": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false",
        "kind": "condition-false",
        "label": "continue",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.9
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true__method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
        "from": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__true",
        "to": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
        "kind": "next",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.9
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false__method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
        "from": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__false",
        "to": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
        "kind": "next",
        "line": 96,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.9
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge__method:p4hxqo:oninitializedasync__action_98_oninitializedasync_await_98_1__await",
        "from": "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
        "to": "method:p4hxqo:oninitializedasync__action_98_oninitializedasync_await_98_1__await",
        "kind": "next",
        "line": 98,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.81
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_98_oninitializedasync_await_98_1__await__method:p4hxqo:oninitializedasync__action_98_external_call_98__linear",
        "from": "method:p4hxqo:oninitializedasync__action_98_oninitializedasync_await_98_1__await",
        "to": "method:p4hxqo:oninitializedasync__action_98_external_call_98__linear",
        "kind": "next",
        "line": 98,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_98_external_call_98__linear__method:p4hxqo:oninitializedasync__action_99_branch_99__condition",
        "from": "method:p4hxqo:oninitializedasync__action_98_external_call_98__linear",
        "to": "method:p4hxqo:oninitializedasync__action_99_branch_99__condition",
        "kind": "next",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__condition__method:p4hxqo:oninitializedasync__action_99_branch_99__true",
        "from": "method:p4hxqo:oninitializedasync__action_99_branch_99__condition",
        "to": "method:p4hxqo:oninitializedasync__action_99_branch_99__true",
        "kind": "condition-true",
        "label": "set _isSyncing true",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__condition__method:p4hxqo:oninitializedasync__action_99_branch_99__false",
        "from": "method:p4hxqo:oninitializedasync__action_99_branch_99__condition",
        "to": "method:p4hxqo:oninitializedasync__action_99_branch_99__false",
        "kind": "condition-false",
        "label": "call IdentityService.GetProfileAsync",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__true__method:p4hxqo:oninitializedasync__action_99_branch_99__merge",
        "from": "method:p4hxqo:oninitializedasync__action_99_branch_99__true",
        "to": "method:p4hxqo:oninitializedasync__action_99_branch_99__merge",
        "kind": "next",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__false__method:p4hxqo:oninitializedasync__action_99_branch_99__merge",
        "from": "method:p4hxqo:oninitializedasync__action_99_branch_99__false",
        "to": "method:p4hxqo:oninitializedasync__action_99_branch_99__merge",
        "kind": "next",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_branch_99__merge__method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__condition",
        "from": "method:p4hxqo:oninitializedasync__action_99_branch_99__merge",
        "to": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__condition",
        "kind": "next",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.78
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__condition__method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__true",
        "from": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__condition",
        "to": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__true",
        "kind": "condition-true",
        "label": "true",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.78
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__condition__method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__false",
        "from": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__condition",
        "to": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__false",
        "kind": "condition-false",
        "label": "false",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.78
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__true__method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
        "from": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__true",
        "to": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
        "kind": "next",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.78
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__false__method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
        "from": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__false",
        "to": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
        "kind": "next",
        "line": 99,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.78
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge__method:p4hxqo:oninitializedasync__action_101_state_change_101__linear",
        "from": "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge",
        "to": "method:p4hxqo:oninitializedasync__action_101_state_change_101__linear",
        "kind": "next",
        "line": 101,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_101_state_change_101__linear__method:p4hxqo:oninitializedasync__action_103_oninitializedasync_await_103_3__await",
        "from": "method:p4hxqo:oninitializedasync__action_101_state_change_101__linear",
        "to": "method:p4hxqo:oninitializedasync__action_103_oninitializedasync_await_103_3__await",
        "kind": "next",
        "line": 103,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.81
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_103_oninitializedasync_await_103_3__await__method:p4hxqo:oninitializedasync__action_103_external_call_103__linear",
        "from": "method:p4hxqo:oninitializedasync__action_103_oninitializedasync_await_103_3__await",
        "to": "method:p4hxqo:oninitializedasync__action_103_external_call_103__linear",
        "kind": "next",
        "line": 103,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:p4hxqo:oninitializedasync__action_103_external_call_103__linear__call_method:p4hxqo:oninitializedasync__call_103_GetProfileAsync",
        "from": "method:p4hxqo:oninitializedasync__action_103_external_call_103__linear",
        "to": "method:p4hxqo:oninitializedasync__call_103_GetProfileAsync",
        "kind": "call",
        "label": "none",
        "line": 103,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.88
      },
      {
        "id": "method:p4hxqo:oninitializedasync__call_103_GetProfileAsync__implicit_return",
        "from": "method:p4hxqo:oninitializedasync__call_103_GetProfileAsync",
        "to": "method:p4hxqo:oninitializedasync__implicit_return",
        "kind": "return",
        "line": 105,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [
      {
        "id": "method:p4hxqo:oninitializedasync__call_103_GetProfileAsync__jump_NexusReader_Application_Abstractions_Services_IIdentityService_cs_GetProfileAsync",
        "fromNodeId": "method:p4hxqo:oninitializedasync__call_103_GetProfileAsync",
        "kind": "call-target",
        "targetPath": "NexusReader.Application.Abstractions.Services/IIdentityService.cs",
        "targetHint": "GetProfileAsync",
        "line": 103,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "reason": "Call target GetProfileAsync in NexusReader.Application.Abstractions.Services/IIdentityService.cs could not be matched to an extracted method symbol.",
        "status": "unresolved"
      }
    ],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [
      "method:p4hxqo:oninitializedasync__action_96_guard_clause_96__merge",
      "method:p4hxqo:oninitializedasync__action_96_oninitializedasync_guard_clause_96_0__merge",
      "method:p4hxqo:oninitializedasync__action_99_branch_99__merge",
      "method:p4hxqo:oninitializedasync__action_99_oninitializedasync_branch_99_2__merge"
    ],
    "language": "unknown",
    "confidence": 0.98,
    "lineSpan": {
      "start": 94,
      "end": 105
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "line": 94,
        "summary": "Control-flow fragment extracted for method OnInitializedAsync.",
        "kind": "file-summary"
      }
    ]
  },
  {
    "fragmentId": "method:64smty:handlelogout__fragment",
    "ownerFileId": "file:1ain1yo:mainhublayout-razor",
    "ownerSymbolId": "method:64smty:handlelogout",
    "ownerSymbolName": "HandleLogout",
    "entryNodeId": "method:64smty:handlelogout__entry",
    "exitNodeIds": [
      "method:64smty:handlelogout__implicit_return"
    ],
    "nodes": [
      {
        "id": "method:64smty:handlelogout__entry",
        "kind": "entry",
        "label": "HandleLogout entry",
        "line": 107,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.99,
        "detail": "Performs logout via the identity service and redirects the browser to a logout form route."
      },
      {
        "id": "method:64smty:handlelogout__action_109_handlelogout_await_109_0__await",
        "kind": "await",
        "label": "Waits for async work",
        "line": 109,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.81,
        "detail": "await IdentityService.LogoutAsync();"
      },
      {
        "id": "method:64smty:handlelogout__action_109_external_call_109__linear",
        "kind": "http-call",
        "label": "Invoke logout on identity service",
        "line": 109,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7,
        "detail": "await IdentityService.LogoutAsync(); (project service)"
      },
      {
        "id": "method:64smty:handlelogout__call_109_LogoutAsync",
        "kind": "call",
        "label": "LogoutAsync",
        "line": 109,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.88,
        "detail": "none"
      },
      {
        "id": "method:64smty:handlelogout__action_110_external_call_110__linear",
        "kind": "http-call",
        "label": "Navigate to logout page",
        "line": 110,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7,
        "detail": "NavigationManager.NavigateTo(\"/account/logout-form\", true) (framework navigation)"
      },
      {
        "id": "method:64smty:handlelogout__implicit_return",
        "kind": "return",
        "label": "return",
        "line": 111,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.72,
        "detail": "Implicit method exit inferred from method boundary."
      }
    ],
    "edges": [
      {
        "id": "method:64smty:handlelogout__entry__method:64smty:handlelogout__action_109_handlelogout_await_109_0__await",
        "from": "method:64smty:handlelogout__entry",
        "to": "method:64smty:handlelogout__action_109_handlelogout_await_109_0__await",
        "kind": "next",
        "line": 109,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.81
      },
      {
        "id": "method:64smty:handlelogout__action_109_handlelogout_await_109_0__await__method:64smty:handlelogout__action_109_external_call_109__linear",
        "from": "method:64smty:handlelogout__action_109_handlelogout_await_109_0__await",
        "to": "method:64smty:handlelogout__action_109_external_call_109__linear",
        "kind": "next",
        "line": 109,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:64smty:handlelogout__action_109_external_call_109__linear__call_method:64smty:handlelogout__call_109_LogoutAsync",
        "from": "method:64smty:handlelogout__action_109_external_call_109__linear",
        "to": "method:64smty:handlelogout__call_109_LogoutAsync",
        "kind": "call",
        "label": "none",
        "line": 109,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.88
      },
      {
        "id": "method:64smty:handlelogout__call_109_LogoutAsync__method:64smty:handlelogout__action_110_external_call_110__linear",
        "from": "method:64smty:handlelogout__call_109_LogoutAsync",
        "to": "method:64smty:handlelogout__action_110_external_call_110__linear",
        "kind": "next",
        "line": 110,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.7
      },
      {
        "id": "method:64smty:handlelogout__action_110_external_call_110__linear__implicit_return",
        "from": "method:64smty:handlelogout__action_110_external_call_110__linear",
        "to": "method:64smty:handlelogout__implicit_return",
        "kind": "return",
        "line": 111,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "confidence": 0.72
      }
    ],
    "jumpTargets": [
      {
        "id": "method:64smty:handlelogout__call_109_LogoutAsync__jump_NexusReader_Application_Abstractions_Services_IIdentityService_cs_LogoutAsync",
        "fromNodeId": "method:64smty:handlelogout__call_109_LogoutAsync",
        "kind": "call-target",
        "targetPath": "NexusReader.Application.Abstractions.Services/IIdentityService.cs",
        "targetHint": "LogoutAsync",
        "line": 109,
        "sourcePath": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "reason": "Call target LogoutAsync in NexusReader.Application.Abstractions.Services/IIdentityService.cs could not be matched to an extracted method symbol.",
        "status": "unresolved"
      }
    ],
    "exceptionTargets": [],
    "loopBackEdges": [],
    "mergeNodeIds": [],
    "language": "unknown",
    "confidence": 0.7999999999999999,
    "lineSpan": {
      "start": 107,
      "end": 111
    },
    "unsupportedConstructs": [],
    "evidence": [
      {
        "path": "NexusReader.UI.Shared/Layout/MainHubLayout.razor",
        "line": 107,
        "summary": "Control-flow fragment extracted for method HandleLogout.",
        "kind": "file-summary"
      }
    ]
  }
]