Skip to content

feat(serializereferences): add Required-violations audit UI#148

Merged
VPDPersonal merged 4 commits into
mainfrom
feat/asp-59-show-required-violations-in-project-references
Jul 21, 2026
Merged

feat(serializereferences): add Required-violations audit UI#148
VPDPersonal merged 4 commits into
mainfrom
feat/asp-59-show-required-violations-in-project-references

Conversation

@VPDPersonal

Copy link
Copy Markdown
Owner

Summary

  • ✨ Add a "Required violations" card to Project References, fed by a new SerializeReferenceGateScanner.ScanAssetRequiredFields / GateOptions.RequiredOnly — audits every unset [TypeSelector(Required = true)] field project-wide without a build.
  • ✨ Asset References badges unset required [SerializeReference] slots inline, plus a fallback "Required" card for string / SerializableType required fields the managed-reference graph has no node for.
  • ✅ EditMode tests cover the new scan entry points and the graph↔gate field-path matching.
  • 📝 QA checklist updated (EN/RU); added a RequiredViolationsDevTest DevTests fixture for manual verification.

Notes for review

  • The required-field scan has no incremental index (unlike the missing-type audit), so it only runs on an explicit Scan/Rescan click, not on every tab switch — a deliberate perf trade-off since it's a full per-asset/project scan.
  • A Required violation on a plain string / SerializableType field has no graph node (no RefIds entry), so Asset References shows it in a separate flat "Required" card instead of a badge on a graph card.

Linked issues

Closes ASP-59

🇷🇺 Описание на русском

Итог

  • ✨ В Project References добавлена карточка "Required violations" на основе нового SerializeReferenceGateScanner.ScanAssetRequiredFields / GateOptions.RequiredOnly — аудит всех незаполненных [TypeSelector(Required = true)]-полей по всему проекту без сборки.
  • ✨ В Asset References незаполненные required-слоты [SerializeReference] подсвечиваются бейджем прямо на карточке, а для string / SerializableType required-полей (у них нет узла графа) добавлена отдельная карточка "Required".
  • ✅ EditMode-тесты покрывают новые точки входа скана и сопоставление путей graph↔gate.
  • 📝 Обновлён QA-чеклист (EN/RU); добавлен DevTests-фикстур RequiredViolationsDevTest для ручной проверки.

На что обратить внимание

  • У скана required-полей нет инкрементального индекса (в отличие от аудита битых ссылок), поэтому он запускается только по явному клику Scan/Rescan, а не при каждом переключении вкладки — осознанный компромисс по производительности (это полный скан ассета/проекта).
  • Required-нарушение на обычном string / SerializableType-поле не имеет узла графа (нет записи RefIds), поэтому в Asset References оно показывается отдельной плоской карточкой "Required", а не бейджем на карточке графа.

Связанные задачи

Closes ASP-59

- Add a "Required violations" card to Project References, fed by a new SerializeReferenceGateScanner.ScanAssetRequiredFields / GateOptions.RequiredOnly, so unset [TypeSelector(Required = true)] fields are auditable project-wide without a build.
- Badge unset required [SerializeReference] slots in Asset References, plus a fallback "Required" card for string/SerializableType required fields that have no graph node.
- Cover the new scan paths and the graph/gate path-matching with EditMode tests; add a RequiredViolationsDevTest fixture for manual QA.
- Update the QA checklist (EN/RU).

Co-Authored-By: Claude <noreply@anthropic.com>
@VPDPersonal VPDPersonal added type: feature New feature or capability status: work-in-progress Draft / not ready for review area: editor Editor-only code area: docs Repository documentation (README, CHANGELOG, docs/) labels Jul 21, 2026
VPDPersonal and others added 3 commits July 21, 2026 17:48
Co-Authored-By: Claude <noreply@anthropic.com>
- Asset References: required string/SerializableType fields get the same
  empty-slot card as managed references, with an inline "Assign Required"
  picker that writes the picked type's AQN via the live serialization API
- style required cards like Missing (amber <None> header and band accent,
  REQUIRED badge dropped); overview headline, hint and canvas tone now
  report "N required fields unassigned" instead of a green all-clear
- Project References: align the Required-violations header with group
  cards and fix "entrys" pluralization

Co-Authored-By: Claude <noreply@anthropic.com>
@VPDPersonal
VPDPersonal marked this pull request as ready for review July 21, 2026 18:53
@VPDPersonal
VPDPersonal merged commit 3f4e26a into main Jul 21, 2026
3 checks passed
@VPDPersonal
VPDPersonal deleted the feat/asp-59-show-required-violations-in-project-references branch July 21, 2026 18:53
@github-actions github-actions Bot added status: needs-review Ready for review and removed status: work-in-progress Draft / not ready for review status: needs-review Ready for review labels Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: docs Repository documentation (README, CHANGELOG, docs/) area: editor Editor-only code type: feature New feature or capability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant