Repository navigation
fix: let the Lit stack adopt application card styles and qualify branding through both stack starts - #248
Conversation
timeleft--
left a comment
There was a problem hiding this comment.
Two required corrections on reviewed head dc9f5d9:
-
Lit stack branding remains unimplemented and unqualified. The approved view-composition verification requires the stack-started branded card's computed strong/em/hr/closing/RTL/font treatment to match layer C. Guarding the computed cases with
if (stack === 'react')leaves that requirement unsatisfied. This is observable behavior: in a separate exact-head checkout, the submitted 55 cases passed, but running the existing strong/emphasis/RTL/footer case on Lit (only removing that guard in a temporary review copy) fails at font-size: expected18px, actual16px. The app's BRANDED_CSS never reaches the Lit card.createFaithfulCardViewalready owns constructable-sheet adoption, whilestartFaithfulCardAppconstructs it without passing application sheets. Correct the stack boundary using that existing renderer-owned mechanism, then run the same computed-style cases through BOTH public starts. Keep the change small and use no private-shadow injection/test hooks or second styling implementation. Documentation must describe the working public path rather than narrow accepted qualification to React. Preserve design/history; this repair carries the approved existing styling behavior through the stack. -
Actual version policy fails. Running
python3 scripts/mw-version.py check --base origin/main --event-file <this PR event>in the clean review tree requires five public manifests/sibling pins/lock mirrors at0.7.6-rc.1; they remain0.7.5-rc.1. GitHub's Version policy check independently fails too. The installed-build script is outside policy-exempt paths. Apply the existing updater using the real PR title/body after syncing current main; do not change exclusions or weaken the check.
Validation performed: separate Captain checkout at exact head with current main131e5b17 ancestor; full Lit-host build succeeded;55 submitted Chromium cases passed;125 affected docs/boundary tests passed. Lit reproduction above fails, version check fails. No actual-host or release acceptance is claimed. Re-review the repaired exact head before merge.
…cases on both stacks
timeleft--
left a comment
There was a problem hiding this comment.
Reviewed exact head e3a04ef independently in a separate clean Captain checkout, with current main131e5b17 as ancestor. Both prior findings are resolved: Lit's public start forwards optional constructable stylesheets to the existing renderer-owned adoption mechanism, and the same computed-style cases now execute for both stacks without weakening assertions. The real PR version policy passes at five public0.7.6-rc.1 versions with matching sibling pins/lock mirrors; private Lit packages remain unversioned.
Independent validation: full Lit-host build;191 affected Lit start/adoption/export/installed-build/documentation/boundary tests; root, Lit-stack and host typechecks;58 real Chromium cases on the workspace build AND58 on isolated packed-package builds. These include the previously failing Lit font/emphasis/RTL/strong-footer treatment, paragraph/link/list/footer/rule styles, actual public start/bridge/chrome, readiness, equal-answer consent reset and sizing. Diff, LFS18 pointers, hook check and actual-title/body version policy pass. React/core/components/MCP/public React-stack runtime source bytes are unchanged from main; the runtime repair is limited to the private Lit stack's existing styling boundary.
This implements the branding qualification slice of the owner-approved design7a78e7eae99285174a11c62d43c1f0035658ec96. Design approval/history remain intact; the coordinator will record the actual landed SHA in a reviewed status follow-up. Final docs reconciliation, exact release artifact qualification and final-candidate named-host acceptance remain open. These local fixtures do not establish host acceptance or publication. Merge remains contingent on every latest required CI check passing at this exact head.
Problem
The approved verification for the branded FaithfulCard claims branding survives a stack-started card, but the only branded rendering evidence (
card-styling.spec.ts) mounts each renderer's card surface directly from a test page that uses a privatewindow.cardPagehook. It never goes throughstartFaithfulCardApp, its chrome, the readiness gate or the presentation lifecycle.Qualifying it exposed a gap: the Lit stack's
startFaithfulCardApphad no way to give the card an application's stylesheet. The Lit card sits in shadow roots a page stylesheet cannot select into, so a branded Lit application could not style a stack-started card.Change
startFaithfulCardAppof the Lit stack takes an optionalstyles(the application's constructable stylesheets) and passes it to the existingcreateFaithfulCardView, whose card adoption already puts them in the card's root. No new styling engine and no injection into private shadow structure; the React stack is unchanged (page CSS reaches its card).card-app-stack.spec.tsand its probe start a branded card through each stack's realstartFaithfulCardApp, in the local host fixture's sandboxed iframe over a realAppBridge, with the real definition and chrome. The probe uses the same stylesheet and attribution classifier ascard-styling.spec.ts(e2e/card-styling/branded.ts) and no private hook; React gets it as page CSS, Lit throughstyles. The same eight cases run on both stacks: semantic DOM (strong,em,hr, right-to-left direction, link and status elements, lists, the closing marker only on a final top-level paragraph, the application's classification following each answer), computed styles for paragraph, link, list, footer, emphasis, right-to-left emphasis, rule and strong-footer inheritance, a result held for the font readiness work, and image-consent reset on an equal answer, plus the size still being reported.docs/faithful-card-styling.mdanddocs/development-reference.mdrecordcard-styling.spec.tsas card-surface evidence that does not start a card application, the stack-level result separately, and the Litstylesoption. The approved Blueprint text is unchanged.Verification (this head)
stylesreached the card view all passed.card-app-stack.spec.ts: 58 passed on the workspace build; see the PR checks for the packed build.0.7.6-rc.1on the five public units.Local fixture results only; not acceptance by any actual host, and nothing is published or deployed.