Перейти к содержанию

Пакет contracts — отчёт по дефектам ревью

Дефект Что сделано Файл:строка Тест Статус
D-01 schema.py — реэкспорт канона; планировщик пишет snake_case план, load_plan и plan.schema.json shared-py/geoscan_contracts/schema.py:1; planner/planner/pipeline.py:10 tests/integration/test_end_to_end_contract.py ИСПРАВЛЕНО
D-10 Фабрика gRPC-клиента без as T, отдельный resolveServiceConstructor shared/src/grpc/client-factory.ts:28 Статический разбор TS; test_loader_options не покрывает tsc — сборка Node в среде отсутствует ИСПРАВЛЕНО
D-14 ExportPlanRequest: plan_json + ExportFormat, без plan_id proto/geoscan/planner.proto:58 tests/integration/test_proto_contract.py ИСПРАВЛЕНО
D-15 ValidateRequest/ValidateResponse по SR-RPC-05 proto/geoscan/validator.proto:11 tests/integration/test_proto_contract.py ИСПРАВЛЕНО
D-16 Модуль json_schema, валидация сценариев и планов shared-py/geoscan_contracts/json_schema.py:1 tests/integration/test_json_schema_module.py ИСПРАВЛЕНО
D-35 Сценарии s04–s10 и эталонные планы в plans/ (кроме s08 — вход невалиден для MVP) scenarios/s04-mixed-fleet.json:1; plans/s01-simple.plan.json tests/integration/test_json_schema_module.py ЧАСТИЧНО — для s08 эталонного плана нет: сценарий ожидает ошибку валидации входа, планировщик MVP не отклоняет GSD
D-49 grpcio-tools в dev shared-py, uv run в Makefile, proto-gen в workspace shared-py/pyproject.toml:18; Makefile:5; pyproject.toml:4 tests/integration/test_proto_gen.py ИСПРАВЛЕНО
D-50 Наполнен common.proto, импорты в planner/validator proto/geoscan/common.proto:1 tests/integration/test_proto_contract.py ИСПРАВЛЕНО
D-51 Схема сценария: turnaround_time_min, energy_reserve, expected schema/scenario.schema.json:84 tests/integration/test_json_schema_module.py ИСПРАВЛЕНО
D-52 Схема плана: coverage_frac, float violations, lambda/stop_reason schema/plan.schema.json:92 test_end_to_end_contract.py ИСПРАВЛЕНО
D-53 Обход репозитория на inline protoLoader.load tests/integration/test_loader_options.py:55 tests/integration/test_loader_options.py ИСПРАВЛЕНО
D-54 Одна таблица GRPC_TO_HTTP для grpcToHttp shared/src/grpc/grpc-to-http.ts:14 tests/integration/test_grpc_to_http.py ИСПРАВЛЕНО
D-66 Второй SR-DAT-13 переименован в SR-DAT-14 docs/task5/91-system/05-data-model.md:360 Ручная сверка grep ИСПРАВЛЕНО
D-67 Отдельные maxReceive / maxSend в опциях канала shared/src/grpc/client-factory.ts:10 Статический разбор TS (см. D-10) ИСПРАВЛЕНО
D-68 units.json синхронизирован с units.py schema/units.json:4 tests/integration/test_units_json.py ИСПРАВЛЕНО
D-69 turnaround_min в каталоге не подменяется временем заряда shared-py/geoscan_contracts/catalog.py:327 tests/integration/test_turnaround_catalog.py ИСПРАВЛЕНО
D-71 Исключения buf lint для известных расхождений имён RPC proto/buf.yaml:8 Статическая проверка buf.yaml; buf в CI-образе — смежный пакет ЧАСТИЧНО — buf lint локально не гонялся (нет бинарника buf)
D-99 Приоритет HARDWARE_CATALOG_DIR, fallback GEOSCAN_HARDWARE_DIR shared-py/geoscan_contracts/catalog.py:33 tests/integration/test_catalog_env.py ИСПРАВЛЕНО