Repository navigation
feat(programs): solution contracts and routing foundation (FE01) - #501
Merged
Merged
Conversation
11 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Что изменено
Создание заявки программы выбирает решение или прежний проект по явному solution-context. Повторный вход открывает текущую заявку. Новые маршруты создания, просмотра и редактирования имеют program/solution ID; оболочка чтения содержит вкладки «Решение» и «Команда».
Зачем
ТЗ и согласованный D00 v3. Scope — FE01: типы, API, маршруты и выбор режима; полный редактор, приглашение с поиском и сдача относятся к FE03–FE06.
Реализация
Из C00 генерируются 47 типов и 43 независимых сценария. Port → HTTP adapter/repository → use cases. Ошибки преобразуются отдельно от успешных ответов, включая issues/meta. Смена программы отменяет предыдущий запрос; ошибка контекста не создает legacy Project. Typed ApplicationRef сохраняет projectId/programLinkId для старых маршрутов.
API
C00 1.0.0, snake_case через действующий CamelcaseInterceptor. Новое создание не требует Project/Team ID. Backend BE01 должен быть развернут первым. В PR нет изменения environment.ts, package.json/lock или включения режима.
UI
Read-only основа утвержденного D00 v3: существующие Mont, цвета и Button foundation, строки команды, две вкладки. Loading/error/not_found/retry, mobile 390 px без горизонтального скролла. Скриншоты и полный audit:
docs/product/program-solutions-fe01.md. Изменяющие кнопки еще не реализованных команд не показываются.Permissions
Сервер BE01 проверяет доступ; фронт не дает дополнительных прав. Страница может читать уже созданное решение при отключении нового создания. Существующий legacy editor сохраняется.
Проверки
npm run test:ci -- --maxWorkers=2— 2471 tests / 452 files PASS.npm run build:prна текущем head и штатной environment.ts; полный ESLint (0 errors), scoped Stylelint и Prettier.Acceptance criteria
Не проверено
Screen reader и все четыре роли в браузере не проверялись. Полный редактор, загрузки, приглашения, сдача и оценивание — следующие задачи, этот PR их не объявляет готовыми.
Риски / migration
Внедрять после BE01 с миграцией и default legacy_project. Для реальных участников режим не включать до REL01. Проверки выполнены на head 9337546 поверх dev 2c4e91a. Совместимость с текущим dev проверена по diff и отсутствию конфликтов; независимые изменения кабинета эксперта в этот PR не входят. Merge и deployment выполняет пользователь.
Парный backend PR: PROCOLLAB-github/api#819 .