исправление багов
This commit is contained in:
@@ -1,19 +1,45 @@
|
||||
{
|
||||
"generated_at": "2026-07-10T17:12:35.296680+00:00",
|
||||
"generated_at": "2026-07-12T21:52:36.954007+00:00",
|
||||
"nodes": {
|
||||
"backend_src_main_java_com_magistr_app_config_auth_authorizationinterceptor_authorizationinterceptor": {
|
||||
"code_fingerprint": "9f11d3686fe75ecd9f0b8abaa42702ed900baa8cc253a4025e377fe527fc3b81",
|
||||
"code_fingerprint": "70b01b3fa22e058ee997250c52cc0affee54ab37aa5f8cc7eb74411487f1bbbf",
|
||||
"label": "AuthorizationInterceptor",
|
||||
"last": "2026-07-04T10:57:57.276777+00:00",
|
||||
"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": 0.865333358,
|
||||
"score": 2.75167804,
|
||||
"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.977626859,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/config/auth/JwtTokenService.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
},
|
||||
@@ -28,24 +54,210 @@
|
||||
"q": "Почему RequireRoles связывает множество контроллеров, моделей и сервисов как cross-community bridge?"
|
||||
}
|
||||
],
|
||||
"score": 0.865333358,
|
||||
"score": 0.822552197,
|
||||
"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_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.951498983,
|
||||
"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_tenantconfigwatcher_tenantconfigwatcher": {
|
||||
"code_fingerprint": "83dcf36dd5d7c969fa4d454909cc245145949738b462f569eb1367663e33492d",
|
||||
"label": "TenantConfigWatcher",
|
||||
"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.951498983,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/config/tenant/TenantConfigWatcher.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
},
|
||||
"backend_src_main_java_com_magistr_app_config_tenant_tenantroutingdatasource_tenantroutingdatasource": {
|
||||
"code_fingerprint": "2efea217f4236134681ee86d870bd0d5ffcd653e312637e115b50768ada975f0",
|
||||
"label": "TenantRoutingDataSource",
|
||||
"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.977626859,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/config/tenant/TenantRoutingDataSource.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
},
|
||||
"backend_src_main_java_com_magistr_app_controller_databasecontroller": {
|
||||
"code_fingerprint": "d4e6c182c5a40917feb56354fde6f6c9764d95fd79dc72d4bc760b1fd2d24cdc",
|
||||
"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.977626859,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/controller/DatabaseController.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
},
|
||||
"backend_src_main_java_com_magistr_app_controller_globalexceptionhandler_globalexceptionhandler": {
|
||||
"code_fingerprint": "3fc674c29337df18a9494ada4a6a150b522f6f5fc1f044d003c33eb4272e380d",
|
||||
"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.951498983,
|
||||
"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": "74f022a62ea5440fb0c4c66b86df005e5e77f7f1fda8a4b718d95bd55104ca13",
|
||||
"label": "ScheduleController.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.977626859,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/controller/ScheduleController.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
},
|
||||
"backend_src_main_java_com_magistr_app_controller_scheduleoverridecontroller_scheduleoverridecontroller": {
|
||||
"code_fingerprint": "b9f25c272cab98280e15616873c10e65380ba04b5f3dc4cbfa50f2c16b5429f1",
|
||||
"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.993275993,
|
||||
"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.951435101,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/controller/ScheduleRuleAdminController.java",
|
||||
"status": "preferred",
|
||||
"uses": 2
|
||||
},
|
||||
"backend_src_main_java_com_magistr_app_model_schedulerule_schedulerule": {
|
||||
"code_fingerprint": "692d61c1bfd5b46f5865174dde8cf2d962d2ccd124b5e4320e2ba8535bb29605",
|
||||
"label": "ScheduleRule",
|
||||
"last": "2026-07-04T12:07:28.781712+00:00",
|
||||
"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": 0.866299207,
|
||||
"score": 1.823406413,
|
||||
"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.999936118,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/model/ScheduleRuleSlot.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
},
|
||||
"backend_src_main_java_com_magistr_app_repository_semesterrepository_semesterrepository": {
|
||||
"code_fingerprint": "8a39b28d2b7d0d2ca60b188a5c9b97c71187b5845dd8bdc85206f117b9d4984b",
|
||||
"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.999936118,
|
||||
"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": "47d0183b1249d194c9825046e0942a1867ad5c781ed90f376b975095e8807f68",
|
||||
"label": "ScheduleQueryService",
|
||||
"last": "2026-07-12T14:52:07.844079+00:00",
|
||||
"provenance": [
|
||||
{
|
||||
"date": "2026-07-12T14:52:07.844079+00:00",
|
||||
"outcome": "useful",
|
||||
"q": "Как безопасно валидировать и сохранять точечные изменения расписания?"
|
||||
}
|
||||
],
|
||||
"score": 0.993275993,
|
||||
"source_file": "backend/src/main/java/com/magistr/app/service/ScheduleQueryService.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
},
|
||||
@@ -60,10 +272,26 @@
|
||||
"q": "Корректны ли inferred-связи вокруг ScheduleRule?"
|
||||
}
|
||||
],
|
||||
"score": 0.866299207,
|
||||
"score": 0.823470295,
|
||||
"source_file": "backend/src/test/java/com/magistr/app/model/ScheduleRuleTest.java",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
},
|
||||
"compose_backend_service": {
|
||||
"code_fingerprint": "a175ccc6d907386f120574edb6296a6af416da683b869c7da71f60835f2daaa6",
|
||||
"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.977626859,
|
||||
"source_file": "compose.yaml",
|
||||
"status": "tentative",
|
||||
"uses": 1
|
||||
}
|
||||
},
|
||||
"version": 1
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
type: "query"
|
||||
date: "2026-07-11T22:22:23.259230+00:00"
|
||||
question: "Какие подсистемы связывают исправления аутентификации, tenant-конфигурации, расписания и инфраструктуры?"
|
||||
contributor: "graphify"
|
||||
outcome: "useful"
|
||||
source_nodes: ["AuthorizationInterceptor", "JwtTokenService", "TenantRoutingDataSource", "DatabaseController.java", "ScheduleController.java", "Backend-сервис Docker Compose"]
|
||||
---
|
||||
|
||||
# Q: Какие подсистемы связывают исправления аутентификации, tenant-конфигурации, расписания и инфраструктуры?
|
||||
|
||||
## Answer
|
||||
|
||||
Расширение по словарю графа: [auth, authorization, refresh, token, tenant, config, database, schedule, calendar, frontend, backend, kubernetes]. Граф выделил AuthorizationInterceptor/JwtTokenService/AuthController для авторизации, TenantRoutingDataSource/TenantWebMvcConfig/DatabaseController для мультитенантности, ScheduleController и календарные контроллеры для расписания, а compose.yaml и Kubernetes-манифесты для поставки. Связи подтверждены исходниками; граф используется только как карта навигации.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Signal: useful
|
||||
|
||||
## Source Nodes
|
||||
|
||||
- AuthorizationInterceptor
|
||||
- JwtTokenService
|
||||
- TenantRoutingDataSource
|
||||
- DatabaseController.java
|
||||
- ScheduleController.java
|
||||
- Backend-сервис Docker Compose
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
type: "query"
|
||||
date: "2026-07-12T14:13:03.313831+00:00"
|
||||
question: "Как ScheduleOverrideService должен выявлять конфликты эффективного расписания?"
|
||||
contributor: "graphify"
|
||||
outcome: "dead_end"
|
||||
source_nodes: ["Override"]
|
||||
---
|
||||
|
||||
# Q: Как ScheduleOverrideService должен выявлять конфликты эффективного расписания?
|
||||
|
||||
## Answer
|
||||
|
||||
Расширение по словарю графа: schedule, override, conflict, effective, teacher, classroom, subgroup, group. Обход оказался тупиковым: токен override сопоставился с Java-аннотацией Override, а новых production-классов ещё нет в графе. Для тестов нужно опираться на актуальные исходники после появления сервиса.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Signal: dead_end
|
||||
|
||||
## Source Nodes
|
||||
|
||||
- Override
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
type: "query"
|
||||
date: "2026-07-12T14:52:07.844079+00:00"
|
||||
question: "Как безопасно валидировать и сохранять точечные изменения расписания?"
|
||||
contributor: "graphify"
|
||||
outcome: "useful"
|
||||
source_nodes: ["ScheduleOverrideController", "ScheduleQueryService", "ScheduleGeneratorService"]
|
||||
---
|
||||
|
||||
# Q: Как безопасно валидировать и сохранять точечные изменения расписания?
|
||||
|
||||
## Answer
|
||||
|
||||
Расширение по словарю графа: [schedule, override, generator, query, conflict, classroom, teacher, group, rule, slot]. ScheduleOverrideController делегирует транзакционному ScheduleOverrideService; базовый и effective-день строятся через ScheduleQueryService и ScheduleGeneratorService. Проверка подтверждена по исходникам и дополнена PostgreSQL advisory lock, action matrix и конфликтами ресурсов.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Signal: useful
|
||||
|
||||
## Source Nodes
|
||||
|
||||
- ScheduleOverrideController
|
||||
- ScheduleQueryService
|
||||
- ScheduleGeneratorService
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
type: "query"
|
||||
date: "2026-07-12T21:48:38.060218+00:00"
|
||||
question: "Какие связи затрагивает полная валидация правил расписания в исправлении №7?"
|
||||
contributor: "graphify"
|
||||
outcome: "useful"
|
||||
source_nodes: ["ScheduleRuleAdminController", "ScheduleRule", "ScheduleRuleSlot", "SemesterRepository", "ScheduleGeneratorService"]
|
||||
---
|
||||
|
||||
# Q: Какие связи затрагивает полная валидация правил расписания в исправлении №7?
|
||||
|
||||
## Answer
|
||||
|
||||
Expanded from original query via vocab: [schedule, rule, semester, repository, controller, conflict, slot, validation, teacher, classroom]. Граф указал на ScheduleRuleAdminController, ScheduleRule, ScheduleRuleSlot, SemesterRepository и ScheduleGeneratorService. Актуальные исходники подтвердили, что HTTP-слой делегирует ScheduleRuleService, блокировка семестра сериализует запись, а DB-инварианты закрепляются V4.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Signal: useful
|
||||
|
||||
## Source Nodes
|
||||
|
||||
- ScheduleRuleAdminController
|
||||
- ScheduleRule
|
||||
- ScheduleRuleSlot
|
||||
- SemesterRepository
|
||||
- ScheduleGeneratorService
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: "query"
|
||||
date: "2026-07-12T22:09:47.294749+00:00"
|
||||
question: "Как безопасно заменить tenant DataSource без потери рабочего подключения?"
|
||||
contributor: "graphify"
|
||||
outcome: "useful"
|
||||
source_nodes: ["DatabaseController", "TenantRoutingDataSource", "TenantConfigWatcher", "TenantConfig"]
|
||||
---
|
||||
|
||||
# Q: Как безопасно заменить tenant DataSource без потери рабочего подключения?
|
||||
|
||||
## Answer
|
||||
|
||||
Expanded from original query via vocab: [database, tenant, routing, flyway, hikari, secret, config, updater, watcher, controller]. Граф связал DatabaseController с TenantRoutingDataSource и Hikari/Flyway. Актуальные исходники подтвердили destructive remove старого pool, ленивый candidate, проглоченную ошибку Flyway и отсутствие rollback при отказе Secret. Безопасный локальный протокол: prepare, explicit connection validation, Flyway на candidate, persistence prospective snapshot, atomic swap, compensation и закрытие old только после успеха. ResourceVersion между pod относится к отдельному пункту №10.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Signal: useful
|
||||
|
||||
## Source Nodes
|
||||
|
||||
- DatabaseController
|
||||
- TenantRoutingDataSource
|
||||
- TenantConfigWatcher
|
||||
- TenantConfig
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
type: "query"
|
||||
date: "2026-07-12T22:20:21.382611+00:00"
|
||||
question: "Как безопасно обновлять tenant DataSource без потери рабочего подключения?"
|
||||
contributor: "graphify"
|
||||
outcome: "useful"
|
||||
source_nodes: ["TenantRoutingDataSource", "DatabaseController", "TenantConfigWatcher", "DataInitializer"]
|
||||
---
|
||||
|
||||
# Q: Как безопасно обновлять tenant DataSource без потери рабочего подключения?
|
||||
|
||||
## Answer
|
||||
|
||||
Расширение по словарю графа: tenant, routing, data, source, database, controller, config, watcher, initializer, hikari, flyway, secret. Граф указал на TenantRoutingDataSource, DatabaseController, TenantConfigWatcher и DataInitializer; актуальные исходники подтвердили destructive remove-before-add и проглатывание Flyway. Реализация использует проверенный временный Hikari pool, миграцию до персистенции, immutable runtime snapshot, Secret-before-swap и compensating restore.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Signal: useful
|
||||
|
||||
## Source Nodes
|
||||
|
||||
- TenantRoutingDataSource
|
||||
- DatabaseController
|
||||
- TenantConfigWatcher
|
||||
- DataInitializer
|
||||
@@ -1,16 +1,37 @@
|
||||
# Lessons
|
||||
|
||||
_Auto-generated by `graphify reflect` from 2 session memories in graphify-out/memory/. Deterministic; no LLM. Use for orientation — verify before relying, and revisit dead ends if the code has changed since._
|
||||
_Auto-generated by `graphify reflect` from 7 session memories in graphify-out/memory/. Deterministic; no LLM. Use for orientation — verify before relying, and revisit dead ends if the code has changed since._
|
||||
|
||||
## Summary
|
||||
|
||||
- 2 useful · 0 dead ends · 0 corrected · 0 unmarked
|
||||
- 6 useful · 1 dead ends · 0 corrected · 0 unmarked
|
||||
|
||||
## Lessons
|
||||
|
||||
**Preferred sources** — corroborated by ≥2 useful results; start here.
|
||||
|
||||
- `AuthorizationInterceptor` (3× useful)
|
||||
- `ScheduleGeneratorService` (2× useful)
|
||||
- `ScheduleRuleAdminController` (2× useful)
|
||||
- `ScheduleRule` (2× useful)
|
||||
|
||||
**Tentative** — useful in fewer than 2 results; verify before relying.
|
||||
|
||||
- `ScheduleRule` (1× useful)
|
||||
- `ScheduleRuleSlot` (1× useful)
|
||||
- `SemesterRepository` (1× useful)
|
||||
- `ScheduleOverrideController` (1× useful)
|
||||
- `ScheduleQueryService` (1× useful)
|
||||
- `Backend-сервис Docker Compose` (1× useful)
|
||||
- `DatabaseController.java` (1× useful)
|
||||
- `JwtTokenService` (1× useful)
|
||||
- `ScheduleController.java` (1× useful)
|
||||
- `TenantRoutingDataSource` (1× useful)
|
||||
- `ConfigMapUpdater` (1× useful)
|
||||
- `GlobalExceptionHandler` (1× useful)
|
||||
- `TenantConfigWatcher` (1× useful)
|
||||
- `ScheduleRuleTest` (1× useful)
|
||||
- `AuthorizationInterceptor` (1× useful)
|
||||
- `RequireRoles` (1× useful)
|
||||
|
||||
**Known dead ends** — led nowhere; don't re-derive.
|
||||
|
||||
- "Как ScheduleOverrideService должен выявлять конфликты эффективного расписания?" — `Override`
|
||||
|
||||
Reference in New Issue
Block a user