feat: dead-config sweep, test suite foundation, widget settingsSchema validation
Some checks failed
Architecture Governance / architecture (push) Has been cancelled

Sprint G: audited every BootstrapConfig field for a real runtime consumer
(docs/DEAD-CONFIG-AUDIT.md). Wired 3 previously-dead editable fields:
footer.logoUrl, company.address.street/contacts.phone, catalog.suggestionsEnabled.
Remaining dead fields needing a business/design decision tracked in
PRODUCT_BACKLOG.md/KNOWN-ISSUES.md, not silently left.

Sprint H: 6 new spec files (test count 57 -> 83), covering ProjectEditorFacade
(undo/redo, draft persistence, publish gating), AdminAnalyticsFacade
(never-fabricate-a-number contract), and regression coverage for this
session's carousel/hero/profile-toggle fixes.

Sprint I: widget settingsSchema (declared in widget-manifest.json, never
validated) now enforced via a new lightweight schema check in
ProjectValidator, surfaced through the existing issuesByField pipeline.
Same check reused in diagnostics so editor and diagnostics can't disagree.

Verification: tsc clean, ng build clean, 83/83 tests pass, barry-cache
validate clean (2 pre-existing unrelated warnings only).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
sdarbinyan
2026-08-05 20:47:13 +04:00
parent 6f9401fa8f
commit ce63931bc2
25 changed files with 814 additions and 25 deletions

View File

@@ -2,7 +2,7 @@
<div class="app-footer__container page-container">
<div class="app-footer__top">
<div class="app-footer__brand">
<app-logo />
<app-logo [srcOverride]="footerLogoUrl()" />
<p>{{ 'footer.description' | translate }}</p>
</div>
@@ -46,6 +46,12 @@
@if (contactEmail) {
<a [href]="'mailto:' + contactEmail">{{ contactEmail }}</a>
}
@if (contactPhone) {
<a [href]="'tel:' + contactPhone">{{ contactPhone }}</a>
}
@if (companyAddress) {
<span class="app-footer__address">{{ companyAddress }}</span>
}
</div>
</div>
</footer>