{
  "generated_at": "2026-07-22T21:09:28.978295+00:00",
  "nodes": {
    "backend_src_main_java_com_magistr_app_config_auth_authorizationinterceptor_authorizationinterceptor": {
      "code_fingerprint": "70b01b3fa22e058ee997250c52cc0affee54ab37aa5f8cc7eb74411487f1bbbf",
      "label": "AuthorizationInterceptor",
      "last": "2026-07-11T22:22:23.259230+00:00",
      "provenance": [
        {
          "date": "2026-07-11T22:22:23.259230+00:00",
          "outcome": "useful",
          "q": "Какие подсистемы связывают исправления аутентификации, tenant-конфигурации, расписания и инфраструктуры?"
        },
        {
          "date": "2026-07-10T18:14:03.213067+00:00",
          "outcome": "useful",
          "q": "проанализируй весь проект на баги и ошибки и дополни '/mnt/HDD/ProjectMagistr/magistr/BUG_REPORT.md'"
        },
        {
          "date": "2026-07-04T10:57:57.276777+00:00",
          "outcome": "useful",
          "q": "Почему RequireRoles связывает множество контроллеров, моделей и сервисов как cross-community bridge?"
        }
      ],
      "score": 2.185520319,
      "source_file": "backend/src/main/java/com/magistr/app/config/auth/AuthorizationInterceptor.java",
      "status": "preferred",
      "uses": 3
    },
    "backend_src_main_java_com_magistr_app_config_auth_jwttokenservice_jwttokenservice": {
      "code_fingerprint": "e83a6b07c917e4aaf5ffa40228bef4f4e1fa0ad7fabfd617fbc6b80d5ff5a4ec",
      "label": "JwtTokenService",
      "last": "2026-07-11T22:22:23.259230+00:00",
      "provenance": [
        {
          "date": "2026-07-11T22:22:23.259230+00:00",
          "outcome": "useful",
          "q": "Какие подсистемы связывают исправления аутентификации, tenant-конфигурации, расписания и инфраструктуры?"
        }
      ],
      "score": 0.776480146,
      "source_file": "backend/src/main/java/com/magistr/app/config/auth/JwtTokenService.java",
      "status": "tentative",
      "uses": 1
    },
    "backend_src_main_java_com_magistr_app_config_auth_requireroles_requireroles": {
      "code_fingerprint": "9690db03571a132129eadcebf6c24c1217bfb6b1781ec52eb05819e53266ce7e",
      "label": "RequireRoles",
      "last": "2026-07-04T10:57:57.276777+00:00",
      "provenance": [
        {
          "date": "2026-07-04T10:57:57.276777+00:00",
          "outcome": "useful",
          "q": "Почему RequireRoles связывает множество контроллеров, моделей и сервисов как cross-community bridge?"
        }
      ],
      "score": 0.653312094,
      "source_file": "backend/src/main/java/com/magistr/app/config/auth/RequireRoles.java",
      "status": "tentative",
      "uses": 1
    },
    "backend_src_main_java_com_magistr_app_config_datainitializer_datainitializer": {
      "code_fingerprint": "",
      "label": "DataInitializer",
      "last": "2026-07-12T22:20:21.382611+00:00",
      "provenance": [
        {
          "date": "2026-07-12T22:20:21.382611+00:00",
          "outcome": "useful",
          "q": "Как безопасно обновлять tenant DataSource без потери рабочего подключения?"
        }
      ],
      "score": 0.794603611,
      "source_file": "backend/src/main/java/com/magistr/app/config/DataInitializer.java",
      "status": "tentative",
      "uses": 1
    },
    "backend_src_main_java_com_magistr_app_config_tenant_configmapupdater_configmapupdater": {
      "code_fingerprint": "",
      "label": "ConfigMapUpdater",
      "last": "2026-07-10T18:14:03.213067+00:00",
      "provenance": [
        {
          "date": "2026-07-10T18:14:03.213067+00:00",
          "outcome": "useful",
          "q": "проанализируй весь проект на баги и ошибки и дополни '/mnt/HDD/ProjectMagistr/magistr/BUG_REPORT.md'"
        }
      ],
      "score": 0.75572808,
      "source_file": "backend/src/main/java/com/magistr/app/config/tenant/ConfigMapUpdater.java",
      "status": "tentative",
      "uses": 1
    },
    "backend_src_main_java_com_magistr_app_config_tenant_tenantconfig_tenantconfig": {
      "code_fingerprint": "22d2e92c23a81959e7c20ad48ff92fdea8fb2bc37b0dda0dfd33d86eb0267e85",
      "label": "TenantConfig",
      "last": "2026-07-12T22:09:47.294749+00:00",
      "provenance": [
        {
          "date": "2026-07-12T22:09:47.294749+00:00",
          "outcome": "useful",
          "q": "Как безопасно заменить tenant DataSource без потери рабочего подключения?"
        }
      ],
      "score": 0.794468884,
      "source_file": "backend/src/main/java/com/magistr/app/config/tenant/TenantConfig.java",
      "status": "tentative",
      "uses": 1
    },
    "backend_src_main_java_com_magistr_app_config_tenant_tenantconfigwatcher_tenantconfigwatcher": {
      "code_fingerprint": "875d6a84e8dc1b8ada56a152aa08c9bfb54792851692909044ffe1477c2e78c8",
      "label": "TenantConfigWatcher",
      "last": "2026-07-12T22:20:21.382611+00:00",
      "provenance": [
        {
          "date": "2026-07-12T22:20:21.382611+00:00",
          "outcome": "useful",
          "q": "Как безопасно обновлять tenant DataSource без потери рабочего подключения?"
        },
        {
          "date": "2026-07-12T22:09:47.294749+00:00",
          "outcome": "useful",
          "q": "Как безопасно заменить tenant DataSource без потери рабочего подключения?"
        },
        {
          "date": "2026-07-10T18:14:03.213067+00:00",
          "outcome": "useful",
          "q": "проанализируй весь проект на баги и ошибки и дополни '/mnt/HDD/ProjectMagistr/magistr/BUG_REPORT.md'"
        }
      ],
      "score": 2.344800575,
      "source_file": "backend/src/main/java/com/magistr/app/config/tenant/TenantConfigWatcher.java",
      "status": "preferred",
      "uses": 3
    },
    "backend_src_main_java_com_magistr_app_config_tenant_tenantroutingdatasource_tenantroutingdatasource": {
      "code_fingerprint": "4dbf5864ca471e92d143acb834ed61b9eb23e2cf2ebc3ab9ab0757eb2439e727",
      "label": "TenantRoutingDataSource",
      "last": "2026-07-12T22:20:21.382611+00:00",
      "provenance": [
        {
          "date": "2026-07-12T22:20:21.382611+00:00",
          "outcome": "useful",
          "q": "Как безопасно обновлять tenant DataSource без потери рабочего подключения?"
        },
        {
          "date": "2026-07-12T22:09:47.294749+00:00",
          "outcome": "useful",
          "q": "Как безопасно заменить tenant DataSource без потери рабочего подключения?"
        },
        {
          "date": "2026-07-11T22:22:23.259230+00:00",
          "outcome": "useful",
          "q": "Какие подсистемы связывают исправления аутентификации, tenant-конфигурации, расписания и инфраструктуры?"
        }
      ],
      "score": 2.365552641,
      "source_file": "backend/src/main/java/com/magistr/app/config/tenant/TenantRoutingDataSource.java",
      "status": "preferred",
      "uses": 3
    },
    "backend_src_main_java_com_magistr_app_controller_classroomcontroller": {
      "code_fingerprint": "a768ef91dfe89f82197f53d85b348187a340c3dc8043bf009fa2f08418fabcba",
      "label": "ClassroomController.java",
      "last": "2026-07-21T20:49:48.084227+00:00",
      "provenance": [
        {
          "date": "2026-07-21T20:49:48.084227+00:00",
          "outcome": "useful",
          "q": "Почему в выборе аудитории показаны корпус и этаж?"
        }
      ],
      "score": 0.976851438,
      "source_file": "backend/src/main/java/com/magistr/app/controller/ClassroomController.java",
      "status": "tentative",
      "uses": 1
    },
    "backend_src_main_java_com_magistr_app_controller_databasecontroller": {
      "code_fingerprint": "e888a1e23f2d0ae6993fc2d767f6a4ef026c935ff2300d7d0c91bb805c22017f",
      "label": "DatabaseController.java",
      "last": "2026-07-11T22:22:23.259230+00:00",
      "provenance": [
        {
          "date": "2026-07-11T22:22:23.259230+00:00",
          "outcome": "useful",
          "q": "Какие подсистемы связывают исправления аутентификации, tenant-конфигурации, расписания и инфраструктуры?"
        }
      ],
      "score": 0.776480146,
      "source_file": "backend/src/main/java/com/magistr/app/controller/DatabaseController.java",
      "status": "tentative",
      "uses": 1
    },
    "backend_src_main_java_com_magistr_app_controller_databasecontroller_databasecontroller": {
      "code_fingerprint": "e888a1e23f2d0ae6993fc2d767f6a4ef026c935ff2300d7d0c91bb805c22017f",
      "label": "DatabaseController",
      "last": "2026-07-12T22:20:21.382611+00:00",
      "provenance": [
        {
          "date": "2026-07-12T22:20:21.382611+00:00",
          "outcome": "useful",
          "q": "Как безопасно обновлять tenant DataSource без потери рабочего подключения?"
        },
        {
          "date": "2026-07-12T22:09:47.294749+00:00",
          "outcome": "useful",
          "q": "Как безопасно заменить tenant DataSource без потери рабочего подключения?"
        }
      ],
      "score": 1.589072495,
      "source_file": "backend/src/main/java/com/magistr/app/controller/DatabaseController.java",
      "status": "preferred",
      "uses": 2
    },
    "backend_src_main_java_com_magistr_app_controller_globalexceptionhandler_globalexceptionhandler": {
      "code_fingerprint": "a637ea110ec1c5fef0c0a1d88cccbc54d56b3b6ca66a6c1d3659871bd5ff7f4e",
      "label": "GlobalExceptionHandler",
      "last": "2026-07-10T18:14:03.213067+00:00",
      "provenance": [
        {
          "date": "2026-07-10T18:14:03.213067+00:00",
          "outcome": "useful",
          "q": "проанализируй весь проект на баги и ошибки и дополни '/mnt/HDD/ProjectMagistr/magistr/BUG_REPORT.md'"
        }
      ],
      "score": 0.75572808,
      "source_file": "backend/src/main/java/com/magistr/app/controller/GlobalExceptionHandler.java",
      "status": "tentative",
      "uses": 1
    },
    "backend_src_main_java_com_magistr_app_controller_schedulecontroller": {
      "code_fingerprint": "40af5947a24d994d92566c135abe5080eec04f5f266b40e04abfa3c5fac18a84",
      "label": "ScheduleController.java",
      "last": "2026-07-21T19:52:13.631700+00:00",
      "provenance": [
        {
          "date": "2026-07-21T19:52:13.631700+00:00",
          "outcome": "useful",
          "q": "в дополнительные фильры просмотра расписаний нужно добавить выбор семестра"
        },
        {
          "date": "2026-07-11T22:22:23.259230+00:00",
          "outcome": "useful",
          "q": "Какие подсистемы связывают исправления аутентификации, tenant-конфигурации, расписания и инфраструктуры?"
        }
      ],
      "score": 1.752429602,
      "source_file": "backend/src/main/java/com/magistr/app/controller/ScheduleController.java",
      "status": "preferred",
      "uses": 2
    },
    "backend_src_main_java_com_magistr_app_controller_scheduleoverridecontroller_scheduleoverridecontroller": {
      "code_fingerprint": "91be9aa1507e774d0168c858ad5cde838f8d6650e2169fae81cc1d551cbc5ff9",
      "label": "ScheduleOverrideController",
      "last": "2026-07-12T14:52:07.844079+00:00",
      "provenance": [
        {
          "date": "2026-07-12T14:52:07.844079+00:00",
          "outcome": "useful",
          "q": "Как безопасно валидировать и сохранять точечные изменения расписания?"
        }
      ],
      "score": 0.78890947,
      "source_file": "backend/src/main/java/com/magistr/app/controller/ScheduleOverrideController.java",
      "status": "tentative",
      "uses": 1
    },
    "backend_src_main_java_com_magistr_app_controller_scheduleruleadmincontroller_scheduleruleadmincontroller": {
      "code_fingerprint": "88244c8ce05d55ac3581c4295a7213294389d1245b56c73a0ad5df2da4ecf000",
      "label": "ScheduleRuleAdminController",
      "last": "2026-07-12T21:48:38.060218+00:00",
      "provenance": [
        {
          "date": "2026-07-12T21:48:38.060218+00:00",
          "outcome": "useful",
          "q": "Какие связи затрагивает полная валидация правил расписания в исправлении №7?"
        },
        {
          "date": "2026-07-10T18:14:03.213067+00:00",
          "outcome": "useful",
          "q": "проанализируй весь проект на баги и ошибки и дополни '/mnt/HDD/ProjectMagistr/magistr/BUG_REPORT.md'"
        }
      ],
      "score": 1.549927354,
      "source_file": "backend/src/main/java/com/magistr/app/controller/ScheduleRuleAdminController.java",
      "status": "preferred",
      "uses": 2
    },
    "backend_src_main_java_com_magistr_app_model_classroom_classroom": {
      "code_fingerprint": "5614d83b8b7e20fd2b76271b28a8ef11ffc137808ec2d7ed7cd23e42e0ab93ec",
      "label": "Classroom",
      "last": "2026-07-21T20:49:48.084227+00:00",
      "provenance": [
        {
          "date": "2026-07-21T20:49:48.084227+00:00",
          "outcome": "useful",
          "q": "Почему в выборе аудитории показаны корпус и этаж?"
        }
      ],
      "score": 0.976851438,
      "source_file": "backend/src/main/java/com/magistr/app/model/Classroom.java",
      "status": "tentative",
      "uses": 1
    },
    "backend_src_main_java_com_magistr_app_model_schedulerule_schedulerule": {
      "code_fingerprint": "692d61c1bfd5b46f5865174dde8cf2d962d2ccd124b5e4320e2ba8535bb29605",
      "label": "ScheduleRule",
      "last": "2026-07-12T21:48:38.060218+00:00",
      "provenance": [
        {
          "date": "2026-07-12T21:48:38.060218+00:00",
          "outcome": "useful",
          "q": "Какие связи затрагивает полная валидация правил расписания в исправлении №7?"
        },
        {
          "date": "2026-07-04T12:07:28.781712+00:00",
          "outcome": "useful",
          "q": "Корректны ли inferred-связи вокруг ScheduleRule?"
        }
      ],
      "score": 1.448240567,
      "source_file": "backend/src/main/java/com/magistr/app/model/ScheduleRule.java",
      "status": "preferred",
      "uses": 2
    },
    "backend_src_main_java_com_magistr_app_model_scheduleruleslot_scheduleruleslot": {
      "code_fingerprint": "0b1cef627b98558752cc70624d74cd54eb09d9dbff8ca985f81f56d5b3dd34ff",
      "label": "ScheduleRuleSlot",
      "last": "2026-07-12T21:48:38.060218+00:00",
      "provenance": [
        {
          "date": "2026-07-12T21:48:38.060218+00:00",
          "outcome": "useful",
          "q": "Какие связи затрагивает полная валидация правил расписания в исправлении №7?"
        }
      ],
      "score": 0.794199275,
      "source_file": "backend/src/main/java/com/magistr/app/model/ScheduleRuleSlot.java",
      "status": "tentative",
      "uses": 1
    },
    "backend_src_main_java_com_magistr_app_model_semester_semester": {
      "code_fingerprint": "52546b552fff16ab841a63ea80fb806f6cc32edc0615ec53b3c002543d692f24",
      "label": "Semester",
      "last": "2026-07-21T19:52:13.631700+00:00",
      "provenance": [
        {
          "date": "2026-07-21T19:52:13.631700+00:00",
          "outcome": "useful",
          "q": "в дополнительные фильры просмотра расписаний нужно добавить выбор семестра"
        }
      ],
      "score": 0.975949456,
      "source_file": "backend/src/main/java/com/magistr/app/model/Semester.java",
      "status": "tentative",
      "uses": 1
    },
    "backend_src_main_java_com_magistr_app_repository_semesterrepository_semesterrepository": {
      "code_fingerprint": "2b869d2e676e50879b467e36cdc45982b68b323942c51de567c347fe9bf1fd10",
      "label": "SemesterRepository",
      "last": "2026-07-12T21:48:38.060218+00:00",
      "provenance": [
        {
          "date": "2026-07-12T21:48:38.060218+00:00",
          "outcome": "useful",
          "q": "Какие связи затрагивает полная валидация правил расписания в исправлении №7?"
        }
      ],
      "score": 0.794199275,
      "source_file": "backend/src/main/java/com/magistr/app/repository/SemesterRepository.java",
      "status": "tentative",
      "uses": 1
    },
    "backend_src_main_java_com_magistr_app_service_schedulequeryservice_schedulequeryservice": {
      "code_fingerprint": "96b20e57f1e9d75f8f148a809e40d5ad98038423922f21c1f2c080bca6f76926",
      "label": "ScheduleQueryService",
      "last": "2026-07-21T19:52:13.631700+00:00",
      "provenance": [
        {
          "date": "2026-07-21T19:52:13.631700+00:00",
          "outcome": "useful",
          "q": "в дополнительные фильры просмотра расписаний нужно добавить выбор семестра"
        },
        {
          "date": "2026-07-12T14:52:07.844079+00:00",
          "outcome": "useful",
          "q": "Как безопасно валидировать и сохранять точечные изменения расписания?"
        }
      ],
      "score": 1.764858926,
      "source_file": "backend/src/main/java/com/magistr/app/service/ScheduleQueryService.java",
      "status": "preferred",
      "uses": 2
    },
    "backend_src_test_java_com_magistr_app_model_scheduleruletest_scheduleruletest": {
      "code_fingerprint": "73cb9594bd5dc29ba9d9bde11e860d2c182b205b36062df87a8a8783611ffe79",
      "label": "ScheduleRuleTest",
      "last": "2026-07-04T12:07:28.781712+00:00",
      "provenance": [
        {
          "date": "2026-07-04T12:07:28.781712+00:00",
          "outcome": "useful",
          "q": "Корректны ли inferred-связи вокруг ScheduleRule?"
        }
      ],
      "score": 0.654041293,
      "source_file": "backend/src/test/java/com/magistr/app/model/ScheduleRuleTest.java",
      "status": "tentative",
      "uses": 1
    },
    "compose_backend_service": {
      "code_fingerprint": "944ed05aa3bb66491e0622baa9659fc2db3115c79076325ebe243aeb84ca09f9",
      "label": "Backend-сервис Docker Compose",
      "last": "2026-07-11T22:22:23.259230+00:00",
      "provenance": [
        {
          "date": "2026-07-11T22:22:23.259230+00:00",
          "outcome": "useful",
          "q": "Какие подсистемы связывают исправления аутентификации, tenant-конфигурации, расписания и инфраструктуры?"
        }
      ],
      "score": 0.776480146,
      "source_file": "compose.yaml",
      "status": "tentative",
      "uses": 1
    }
  },
  "version": 1
}
