feat: dead-config sweep, test suite foundation, widget settingsSchema validation
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
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:
@@ -20,6 +20,29 @@ Items that need a client/business decision before any code is written — not bl
|
||||
|
||||
**Decision needed:** add a token for this exact shade, or intentionally reuse an existing token (visual shift either way) — needs a design-system owner's call, not an engineering guess.
|
||||
|
||||
## `layout.type` ("Site Layout" selector) — dead editable field
|
||||
|
||||
The Theme section's "Site Layout" dropdown edits top-level `BootstrapConfig.layout.type`,
|
||||
but page rendering (`SectionEngineService.resolveLayoutType`) only ever reads each
|
||||
individual `PageConfig.layout`, never the top-level `bootstrap.layout` — so the
|
||||
selector has no visible effect regardless of what's chosen.
|
||||
|
||||
**Decision needed:** which page(s) should this selector actually drive — only the
|
||||
homepage, or every page that doesn't set its own `layout`? That decision determines
|
||||
the wiring, not an engineering guess. Found: Sprint G dead-config sweep, `docs/DEAD-CONFIG-AUDIT.md`.
|
||||
|
||||
## `company.companyName` — dead editable field, needs a copyright-fallback decision
|
||||
|
||||
The Footer section's "Company Name" field has no runtime consumer. The footer
|
||||
already has a copyright fallback (`© {year} {brandName}`) using `branding.brandName`
|
||||
when `footer.copyrightText` is empty — reusing `company.companyName` there instead
|
||||
(or in addition) is a content/legal-wording decision (brand name vs. legal entity
|
||||
name are intentionally different fields), not a safe mechanical fix.
|
||||
|
||||
**Decision needed:** should the copyright fallback use the legal company name
|
||||
instead of (or alongside) the brand name? Found: Sprint G dead-config sweep,
|
||||
`docs/DEAD-CONFIG-AUDIT.md`.
|
||||
|
||||
## Footer "Contacts" page content
|
||||
|
||||
The footer's "Contacts" link (`footer-contacts` / `nav.contacts`) has no static-page content in the bootstrap mock data at all — unlike "About" (which was a route-name mismatch, already fixed), there's simply nothing written for Contacts.
|
||||
|
||||
Reference in New Issue
Block a user