807 lines
40 KiB
JSON
807 lines
40 KiB
JSON
{
|
||
"generated_at": "2026-07-31T00:26:15.582806+00:00",
|
||
"nodes": {
|
||
"_gitea_workflows_docker_build_backend_image_pipeline": {
|
||
"code_fingerprint": "54d549276598adddd9334dede2b54f31e8610315ee84b0b0269706bf339d6077",
|
||
"label": "Pipeline backend-образа",
|
||
"last": "2026-07-29T21:50:22.465033+00:00",
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-29T21:50:22.465033+00:00",
|
||
"outcome": "useful",
|
||
"q": "Проверить backend на HIGH и CRITICAL уязвимости: context deadline exceeded после загрузки Trivy DB"
|
||
},
|
||
{
|
||
"date": "2026-07-29T21:27:26.637336+00:00",
|
||
"outcome": "useful",
|
||
"q": "Проверить опубликованные образы: backend Trivy HIGH/CRITICAL scan завершился exitcode 1"
|
||
},
|
||
{
|
||
"date": "2026-07-29T20:38:53.488440+00:00",
|
||
"outcome": "useful",
|
||
"q": "The goal you specified requires a project to execute but there is no POM in this directory (/workspace)."
|
||
}
|
||
],
|
||
"score": 2.92268101,
|
||
"source_file": ".gitea/workflows/docker-build.yaml",
|
||
"status": "preferred",
|
||
"uses": 3
|
||
},
|
||
"_gitea_workflows_docker_build_build_and_push_docker_images": {
|
||
"code_fingerprint": "54d549276598adddd9334dede2b54f31e8610315ee84b0b0269706bf339d6077",
|
||
"label": "Workflow сборки и публикации Docker-образов",
|
||
"last": "2026-07-30T00:15:03.724071+00:00",
|
||
"neg": 1,
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-30T00:15:03.724071+00:00",
|
||
"outcome": "corrected",
|
||
"q": "Ты неправильно меня понял. Мне не нужно, чтобы K8S находился в репозитории. Мне нужно просто, чтобы ты вернул назад, как было, чтобы cicd срабатывала без ручного вмешательства. И всё."
|
||
},
|
||
{
|
||
"date": "2026-07-30T00:01:24.718235+00:00",
|
||
"outcome": "useful",
|
||
"q": "кажется бэкенд уходит в рестарт, можешь сам всё посмотреть и проверить"
|
||
},
|
||
{
|
||
"date": "2026-07-29T22:22:22.155742+00:00",
|
||
"outcome": "useful",
|
||
"q": "Проверить frontend на HIGH и CRITICAL уязвимости: 8 HIGH в Alpine runtime"
|
||
},
|
||
{
|
||
"date": "2026-07-29T21:50:22.465033+00:00",
|
||
"outcome": "useful",
|
||
"q": "Проверить backend на HIGH и CRITICAL уязвимости: context deadline exceeded после загрузки Trivy DB"
|
||
},
|
||
{
|
||
"date": "2026-07-29T21:27:26.637336+00:00",
|
||
"outcome": "useful",
|
||
"q": "Проверить опубликованные образы: backend Trivy HIGH/CRITICAL scan завершился exitcode 1"
|
||
}
|
||
],
|
||
"score": 6.81633329,
|
||
"source_file": ".gitea/workflows/docker-build.yaml",
|
||
"status": "contested",
|
||
"uses": 8,
|
||
"verdict": "useful"
|
||
},
|
||
"_gitea_workflows_docker_build_deploy_to_k8s": {
|
||
"code_fingerprint": "54d549276598adddd9334dede2b54f31e8610315ee84b0b0269706bf339d6077",
|
||
"label": "Job деплоя в Kubernetes",
|
||
"last": "2026-07-30T00:15:03.724071+00:00",
|
||
"neg": 1,
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-30T00:15:03.724071+00:00",
|
||
"outcome": "corrected",
|
||
"q": "Ты неправильно меня понял. Мне не нужно, чтобы K8S находился в репозитории. Мне нужно просто, чтобы ты вернул назад, как было, чтобы cicd срабатывала без ручного вмешательства. И всё."
|
||
},
|
||
{
|
||
"date": "2026-07-30T00:01:24.718235+00:00",
|
||
"outcome": "useful",
|
||
"q": "кажется бэкенд уходит в рестарт, можешь сам всё посмотреть и проверить"
|
||
},
|
||
{
|
||
"date": "2026-07-29T20:12:38.880629+00:00",
|
||
"outcome": "useful",
|
||
"q": "сам можешь выполнить эти действия?"
|
||
}
|
||
],
|
||
"score": 0.972977818,
|
||
"source_file": ".gitea/workflows/docker-build.yaml",
|
||
"status": "contested",
|
||
"uses": 2,
|
||
"verdict": "useful"
|
||
},
|
||
"_gitea_workflows_docker_build_frontend_image_pipeline": {
|
||
"code_fingerprint": "54d549276598adddd9334dede2b54f31e8610315ee84b0b0269706bf339d6077",
|
||
"label": "Pipeline frontend-образа",
|
||
"last": "2026-07-29T22:22:22.155742+00:00",
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-29T22:22:22.155742+00:00",
|
||
"outcome": "useful",
|
||
"q": "Проверить frontend на HIGH и CRITICAL уязвимости: 8 HIGH в Alpine runtime"
|
||
},
|
||
{
|
||
"date": "2026-07-29T21:50:22.465033+00:00",
|
||
"outcome": "useful",
|
||
"q": "Проверить backend на HIGH и CRITICAL уязвимости: context deadline exceeded после загрузки Trivy DB"
|
||
},
|
||
{
|
||
"date": "2026-07-29T20:38:53.488440+00:00",
|
||
"outcome": "useful",
|
||
"q": "The goal you specified requires a project to execute but there is no POM in this directory (/workspace)."
|
||
}
|
||
],
|
||
"score": 2.923540074,
|
||
"source_file": ".gitea/workflows/docker-build.yaml",
|
||
"status": "preferred",
|
||
"uses": 3
|
||
},
|
||
"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": 1.810960536,
|
||
"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.643405092,
|
||
"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.541345879,
|
||
"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.658422513,
|
||
"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.626209565,
|
||
"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.658310876,
|
||
"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": 1.942942954,
|
||
"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": 1.960138481,
|
||
"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_academiccalendarcontroller_academiccalendarcontroller": {
|
||
"code_fingerprint": "0bc8973ea8083a479c690c40e12fb178df49b4f88dc62c7788fb64e2069e1b5f",
|
||
"label": "AcademicCalendarController",
|
||
"last": "2026-07-31T00:15:22.545259+00:00",
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-31T00:15:22.545259+00:00",
|
||
"outcome": "useful",
|
||
"q": "давай сделаем \"Один непрерывный период с одинаковой активностью становится одной строкой\". пиши всё в v1 не создавая новую миграцию. внеси изменения о которых сказал, не беспокоясь о проде, потому что проект на этапе разработки и ничего не сломается."
|
||
}
|
||
],
|
||
"score": 0.999825381,
|
||
"source_file": "backend/src/main/java/com/magistr/app/controller/AcademicCalendarController.java",
|
||
"status": "tentative",
|
||
"uses": 1
|
||
},
|
||
"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.809436264,
|
||
"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.643405092,
|
||
"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.316733389,
|
||
"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.626209565,
|
||
"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.452093958,
|
||
"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.653704248,
|
||
"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.284297038,
|
||
"source_file": "backend/src/main/java/com/magistr/app/controller/ScheduleRuleAdminController.java",
|
||
"status": "preferred",
|
||
"uses": 2
|
||
},
|
||
"backend_src_main_java_com_magistr_app_model_academiccalendar_academiccalendar": {
|
||
"code_fingerprint": "5bdd7da771fe97443661a5bd06bed94f453ea036759c4de8c927ed68eb2b723d",
|
||
"label": "AcademicCalendar",
|
||
"last": "2026-07-31T00:15:22.545259+00:00",
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-31T00:15:22.545259+00:00",
|
||
"outcome": "useful",
|
||
"q": "давай сделаем \"Один непрерывный период с одинаковой активностью становится одной строкой\". пиши всё в v1 не создавая новую миграцию. внеси изменения о которых сказал, не беспокоясь о проде, потому что проект на этапе разработки и ничего не сломается."
|
||
},
|
||
{
|
||
"date": "2026-07-30T23:49:30.491131+00:00",
|
||
"outcome": "useful",
|
||
"q": "как ты думаешь, нужно ли оптимизировать таблицу academic_calendar_days? а то расписаний будет очень много, минимум 1000 и со временем будет расти, а там уже такой большой объём данных, даже когда расписаний мало. Можем подумать как переделать логику чтобы оптимизировать это дело"
|
||
},
|
||
{
|
||
"date": "2026-07-22T21:09:57.015227+00:00",
|
||
"outcome": "useful",
|
||
"q": "хотим поменять название сервиса, придумай что-то короткое одним словом подходящее по смыслу"
|
||
}
|
||
],
|
||
"score": 2.827859657,
|
||
"source_file": "backend/src/main/java/com/magistr/app/model/AcademicCalendar.java",
|
||
"status": "preferred",
|
||
"uses": 3
|
||
},
|
||
"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.809436264,
|
||
"source_file": "backend/src/main/java/com/magistr/app/model/Classroom.java",
|
||
"status": "tentative",
|
||
"uses": 1
|
||
},
|
||
"backend_src_main_java_com_magistr_app_model_department_department": {
|
||
"code_fingerprint": "2948555ebc816c44c9f745ce199b0a908930bf6c82cb4a0bd46c23ffac42ea6a",
|
||
"label": "Department",
|
||
"last": "2026-07-22T21:09:57.015227+00:00",
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-22T21:09:57.015227+00:00",
|
||
"outcome": "useful",
|
||
"q": "хотим поменять название сервиса, придумай что-то короткое одним словом подходящее по смыслу"
|
||
}
|
||
],
|
||
"score": 0.828623782,
|
||
"source_file": "backend/src/main/java/com/magistr/app/model/Department.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.200037579,
|
||
"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.658087473,
|
||
"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-22T21:09:57.015227+00:00",
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-22T21:09:57.015227+00:00",
|
||
"outcome": "useful",
|
||
"q": "хотим поменять название сервиса, придумай что-то короткое одним словом подходящее по смыслу"
|
||
},
|
||
{
|
||
"date": "2026-07-21T19:52:13.631700+00:00",
|
||
"outcome": "useful",
|
||
"q": "в дополнительные фильры просмотра расписаний нужно добавить выбор семестра"
|
||
}
|
||
],
|
||
"score": 1.637312649,
|
||
"source_file": "backend/src/main/java/com/magistr/app/model/Semester.java",
|
||
"status": "preferred",
|
||
"uses": 2
|
||
},
|
||
"backend_src_main_java_com_magistr_app_model_studentgroup_studentgroup": {
|
||
"code_fingerprint": "c4a022d9dd493adcfcf8bce3abd264e78d5539b45316d9e0aaef72f1b15091ac",
|
||
"label": "StudentGroup",
|
||
"last": "2026-07-22T21:09:57.015227+00:00",
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-22T21:09:57.015227+00:00",
|
||
"outcome": "useful",
|
||
"q": "хотим поменять название сервиса, придумай что-то короткое одним словом подходящее по смыслу"
|
||
}
|
||
],
|
||
"score": 0.828623782,
|
||
"source_file": "backend/src/main/java/com/magistr/app/model/StudentGroup.java",
|
||
"status": "tentative",
|
||
"uses": 1
|
||
},
|
||
"backend_src_main_java_com_magistr_app_repository_academiccalendardayrepository_academiccalendardayrepository": {
|
||
"code_fingerprint": "",
|
||
"label": "AcademicCalendarDayRepository",
|
||
"last": "2026-07-31T00:15:22.545259+00:00",
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-31T00:15:22.545259+00:00",
|
||
"outcome": "useful",
|
||
"q": "давай сделаем \"Один непрерывный период с одинаковой активностью становится одной строкой\". пиши всё в v1 не создавая новую миграцию. внеси изменения о которых сказал, не беспокоясь о проде, потому что проект на этапе разработки и ничего не сломается."
|
||
},
|
||
{
|
||
"date": "2026-07-30T23:49:30.491131+00:00",
|
||
"outcome": "useful",
|
||
"q": "как ты думаешь, нужно ли оптимизировать таблицу academic_calendar_days? а то расписаний будет очень много, минимум 1000 и со временем будет расти, а там уже такой большой объём данных, даже когда расписаний мало. Можем подумать как переделать логику чтобы оптимизировать это дело"
|
||
}
|
||
],
|
||
"score": 1.999235874,
|
||
"source_file": "backend/src/main/java/com/magistr/app/repository/AcademicCalendarDayRepository.java",
|
||
"status": "preferred",
|
||
"uses": 2
|
||
},
|
||
"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.658087473,
|
||
"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.462393114,
|
||
"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.541950106,
|
||
"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.643405092,
|
||
"source_file": "compose.yaml",
|
||
"status": "tentative",
|
||
"uses": 1
|
||
},
|
||
"compose_db_service": {
|
||
"code_fingerprint": "944ed05aa3bb66491e0622baa9659fc2db3115c79076325ebe243aeb84ca09f9",
|
||
"label": "PostgreSQL-сервис Docker Compose",
|
||
"last": "2026-07-29T19:59:04.551881+00:00",
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-29T19:59:04.551881+00:00",
|
||
"outcome": "useful",
|
||
"q": "новая схема на проде на удалённом сервере создана через CREATE SCHEMA public. я проверил, давай дальше"
|
||
}
|
||
],
|
||
"score": 0.972979865,
|
||
"source_file": "compose.yaml",
|
||
"status": "tentative",
|
||
"uses": 1
|
||
},
|
||
"docs_database_flyway_migrations": {
|
||
"code_fingerprint": "2b50799351b008ee1b60bba24a352e8cb6c0faf710e5af8ed780a5c2d3a1fc87",
|
||
"label": "Flyway-миграции",
|
||
"last": "2026-07-29T19:26:44.188240+00:00",
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-29T19:26:44.188240+00:00",
|
||
"outcome": "useful",
|
||
"q": "теперь напиши мне инструкцию как это всё выыкатить на прод. у мня уже поднят на проде этот сервис со старой базой данных, но я могу её затереть. ci/cd тоже настроен, по сути я прямо сейчас могу залить это в ветку мейн и оно должно раскататься. каие есть подводные камни после изменений безопасности которые мы внесли?"
|
||
}
|
||
],
|
||
"score": 0.972475129,
|
||
"source_file": "docs/DATABASE.md",
|
||
"status": "tentative",
|
||
"uses": 1
|
||
},
|
||
"docs_infrastructure_gitea_actions_cicd": {
|
||
"code_fingerprint": "f0d580f018f58ee321bcca59df5787ebad772071c433fb340da53fa885fa7ebc",
|
||
"label": "CI/CD Gitea Actions в инфраструктуре",
|
||
"last": "2026-07-29T22:22:22.155742+00:00",
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-29T22:22:22.155742+00:00",
|
||
"outcome": "useful",
|
||
"q": "Проверить frontend на HIGH и CRITICAL уязвимости: 8 HIGH в Alpine runtime"
|
||
},
|
||
{
|
||
"date": "2026-07-29T21:50:22.465033+00:00",
|
||
"outcome": "useful",
|
||
"q": "Проверить backend на HIGH и CRITICAL уязвимости: context deadline exceeded после загрузки Trivy DB"
|
||
},
|
||
{
|
||
"date": "2026-07-29T21:27:26.637336+00:00",
|
||
"outcome": "useful",
|
||
"q": "Проверить опубликованные образы: backend Trivy HIGH/CRITICAL scan завершился exitcode 1"
|
||
},
|
||
{
|
||
"date": "2026-07-29T20:38:53.488440+00:00",
|
||
"outcome": "useful",
|
||
"q": "The goal you specified requires a project to execute but there is no POM in this directory (/workspace)."
|
||
}
|
||
],
|
||
"score": 3.897900479,
|
||
"source_file": "docs/INFRASTRUCTURE.md",
|
||
"status": "preferred",
|
||
"uses": 4
|
||
},
|
||
"docs_infrastructure_jwt_secret_policy": {
|
||
"code_fingerprint": "f0d580f018f58ee321bcca59df5787ebad772071c433fb340da53fa885fa7ebc",
|
||
"label": "Политика JWT-секрета",
|
||
"last": "2026-07-30T00:01:24.718235+00:00",
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-30T00:01:24.718235+00:00",
|
||
"outcome": "useful",
|
||
"q": "кажется бэкенд уходит в рестарт, можешь сам всё посмотреть и проверить"
|
||
},
|
||
{
|
||
"date": "2026-07-29T20:12:38.880629+00:00",
|
||
"outcome": "useful",
|
||
"q": "сам можешь выполнить эти действия?"
|
||
},
|
||
{
|
||
"date": "2026-07-29T19:26:44.188240+00:00",
|
||
"outcome": "useful",
|
||
"q": "теперь напиши мне инструкцию как это всё выыкатить на прод. у мня уже поднят на проде этот сервис со старой базой данных, но я могу её затереть. ci/cd тоже настроен, по сути я прямо сейчас могу залить это в ветку мейн и оно должно раскататься. каие есть подводные камни после изменений безопасности которые мы внесли?"
|
||
}
|
||
],
|
||
"score": 2.922437367,
|
||
"source_file": "docs/INFRASTRUCTURE.md",
|
||
"status": "preferred",
|
||
"uses": 3
|
||
},
|
||
"docs_infrastructure_kubernetes_production": {
|
||
"code_fingerprint": "f0d580f018f58ee321bcca59df5787ebad772071c433fb340da53fa885fa7ebc",
|
||
"label": "Production-инфраструктура Kubernetes",
|
||
"last": "2026-07-30T00:15:03.724071+00:00",
|
||
"neg": 1,
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-30T00:15:03.724071+00:00",
|
||
"outcome": "corrected",
|
||
"q": "Ты неправильно меня понял. Мне не нужно, чтобы K8S находился в репозитории. Мне нужно просто, чтобы ты вернул назад, как было, чтобы cicd срабатывала без ручного вмешательства. И всё."
|
||
},
|
||
{
|
||
"date": "2026-07-30T00:01:24.718235+00:00",
|
||
"outcome": "useful",
|
||
"q": "кажется бэкенд уходит в рестарт, можешь сам всё посмотреть и проверить"
|
||
},
|
||
{
|
||
"date": "2026-07-29T20:12:38.880629+00:00",
|
||
"outcome": "useful",
|
||
"q": "сам можешь выполнить эти действия?"
|
||
},
|
||
{
|
||
"date": "2026-07-29T19:59:04.551881+00:00",
|
||
"outcome": "useful",
|
||
"q": "новая схема на проде на удалённом сервере создана через CREATE SCHEMA public. я проверил, давай дальше"
|
||
},
|
||
{
|
||
"date": "2026-07-29T19:26:44.188240+00:00",
|
||
"outcome": "useful",
|
||
"q": "теперь напиши мне инструкцию как это всё выыкатить на прод. у мня уже поднят на проде этот сервис со старой базой данных, но я могу её затереть. ci/cd тоже настроен, по сути я прямо сейчас могу залить это в ветку мейн и оно должно раскататься. каие есть подводные камни после изменений безопасности которые мы внесли?"
|
||
}
|
||
],
|
||
"score": 2.918432812,
|
||
"source_file": "docs/INFRASTRUCTURE.md",
|
||
"status": "contested",
|
||
"uses": 4,
|
||
"verdict": "useful"
|
||
},
|
||
"docs_infrastructure_tenants_configmap": {
|
||
"code_fingerprint": "f0d580f018f58ee321bcca59df5787ebad772071c433fb340da53fa885fa7ebc",
|
||
"label": "Tenants ConfigMap",
|
||
"last": "2026-07-29T19:26:44.188240+00:00",
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-29T19:26:44.188240+00:00",
|
||
"outcome": "useful",
|
||
"q": "теперь напиши мне инструкцию как это всё выыкатить на прод. у мня уже поднят на проде этот сервис со старой базой данных, но я могу её затереть. ci/cd тоже настроен, по сути я прямо сейчас могу залить это в ветку мейн и оно должно раскататься. каие есть подводные камни после изменений безопасности которые мы внесли?"
|
||
}
|
||
],
|
||
"score": 0.972475129,
|
||
"source_file": "docs/INFRASTRUCTURE.md",
|
||
"status": "tentative",
|
||
"uses": 1
|
||
},
|
||
"springbootapplication": {
|
||
"code_fingerprint": "",
|
||
"label": "SpringBootApplication",
|
||
"last": "2026-07-29T21:27:26.637336+00:00",
|
||
"provenance": [
|
||
{
|
||
"date": "2026-07-29T21:27:26.637336+00:00",
|
||
"outcome": "useful",
|
||
"q": "Проверить опубликованные образы: backend Trivy HIGH/CRITICAL scan завершился exitcode 1"
|
||
}
|
||
],
|
||
"score": 0.974360405,
|
||
"source_file": "",
|
||
"status": "tentative",
|
||
"uses": 1
|
||
}
|
||
},
|
||
"version": 1
|
||
}
|