исправление багов

This commit is contained in:
Zuev
2026-07-13 03:28:18 +03:00
parent 39c58440cf
commit 85f61436b6
76 changed files with 9219 additions and 1258 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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