Skip to content

fix: согласовать Angular team flow с hardened API - #392

Merged
TThanos3000 merged 6 commits into
devfrom
fix/dev-team-api-alignment
Oct 17, 2026
Merged

TThanos3000 merged 6 commits into
devfrom
fix/dev-team-api-alignment

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Что изменено

Angular team flow согласован с backend C: корректный DELETE collaborator URL, explicit program-link context, безопасные сообщения известных ошибок и freeze CTA по server snapshot. Pending decline/revoke сохраняются; неуспешная операция не удаляет карточку и не оставляет loading.

Зачем

Spec / AC D1–D5: docs/team-api-alignment.md. Backend C #765 уже развёрнут на DEV, поэтому зависимость schema/API выполнена.

Реализация

  • Current base: dev e1ef88a353a85677cada45f286078897a6a6c1e8.
  • Current head: 1bcd27978c611bd5f8cc17d8bae99f83f4b75faa.
  • Обновление обычным merge без force-push; сохранена панель организатора feat(programs): панель управления программой для организатора V1 #428.
  • Последний merge не имел конфликтов. Patch ID product/test diff до обновления документации совпадает с D от 16.10: bac1336a7657c6463a4944f93cddc0859240217f.
  • Итоговый diff: 48 файлов только D; CSS, workflows и dependencies не меняются относительно dev.

API

Optional program_link_id передаётся через существующие ports/adapters/use-cases. Detail remove/switch/leave используют route selection только после проверки по server snapshot; program ID и чужая связь не подставляются. Ambiguous legacy NULL Invite возвращает controlled conflict, без угадывания первой программы.

Backend DEV 09b29bf59155b9cda1a70d8959a6dc5de140ee17 проверен read-only job 39035280096: migrations Invite 0004 / PartnerProgram 0019 применены, pending migrations нет, backfill mismatches 0, team-policy source соответствует контейнеру, три authenticated GET views возвращают 200 и team_policy. Вызовы выполнены через APIRequestFactory в работающем runtime под SQL READ ONLY; это не live mutation test.

UI

Существующие disabled/error/snackbar states, без redesign. Freeze запрещает invite/member role changes, pending revoke/decline остаются доступны. После leave conflict страница сохраняется. Accept/decline перечитывают список после ошибки.

Permissions

Не менялись. Backend остаётся источником прав и инвариантов; UI guards не заменяют server enforcement. React не затронут.

Проверки

  • Полный Vitest на коде merge 8894249…: 419 files / 2141 tests PASS, 484.08 s, single worker.
  • Итоговый 1bcd279… отличается от проверенного merge только документацией; TS/templates/dependencies/config не менялись.
  • В full suite прошли policy/context, adapters, team facade, реальные team/card templates, detail leave и новые management regressions.
  • npm run build:pr и npm run build:prod PASS. Existing Sass/CommonJS warnings.
  • Полный lint: 0 errors / 6 existing warnings вне diff.
  • Полный format-check с --end-of-line auto для Windows CRLF PASS; финальный doc проверен отдельно. Config не менялся.
  • git diff --check, scope review и чистое working tree.
  • До rollout текущий DEV frontend: root 200, все 150 reachable JS/CSS assets доступны; D markers ещё отсутствуют, что соответствует прежнему Angular.
  • GitHub DEV workflow 39036244252: npm ci, format, lint, 419 files / 2141 tests, build:pr и deployment PASS на merge 043f10016a04e1c0e8ccd00cf27feff4d66df6f3. Отдельного PR CI в этом repo нет.
  • HTTP smoke после rollout: root 200, 151 reachable JS/CSS assets 200; main-5D66VWUE.js совпадает с build/rsync log. HTML/main обновились относительно baseline; compiled JS содержит team_frozen, program_context_required и requiresProgramContext.

Acceptance criteria

  • D1 — slash/query/context adapter assertions.
  • D2 — typed conflict mapping без произвольного backend body.
  • D3 — authoritative freeze snapshot, CTA/card guards.
  • D4 — реальный link ID и verified selection в editor/detail.
  • D5 — error retention / refresh / loading reset.
  • Current dev integration review: новых actionable findings нет.

Не проверено

Browser E2E / live team mutations на новом DEV. Browser tool не инициализируется (ошибка записи kernel assets); component tests выполнялись в jsdom. HTTP static checks не заменяют browser E2E. Исходные исключения Vitest сохранены.

Риски / migration

Schema/migrations отсутствуют. Backend C уже доступен до Angular rollout. Existing DEV data conflicts сохраняются; cleanup, min/max defaults и permissions не менялись. Historical ambiguous NULL Invite автоматически не исправляются.

Пользователь отдельно разрешил merge/deploy только DEV. Production не входит в rollout; различия migration graph / lifecycle требуют отдельного production release review. Local auto-fix pre-commit hook не использовался; per-command override не менял git config.

@TThanos3000
TThanos3000 marked this pull request as ready for review October 17, 2026 13:21
@TThanos3000
TThanos3000 merged commit 043f100 into dev Oct 17, 2026
@TThanos3000
TThanos3000 deleted the fix/dev-team-api-alignment branch October 17, 2026 13:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants