fix(ui): align semantic headings contrast and Settings panels
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# P6-01 — Shared design-system corrections
|
||||
|
||||
Current owner's P6-01 follows [P6-00 audit](../p6-00/README.md). The earlier README/FINDINGS in this folder retain their historical checkpoint meaning. Baseline application source is `9d6d29d`; all existing dirty company/i18n/toast/browser changes were preserved. Parent execution log owns final commit hashes, checkpoint pushes and remote verification.
|
||||
|
||||
## Bounded changes
|
||||
|
||||
| Audit finding | Existing owners / correction | Protected behavior and focused evidence |
|
||||
|---|---|---|
|
||||
| P6-DC01 | CareerProfilePage and ProfilePage Avatar use existing primary.main/primary.contrastText instead of default grey/white. | Image upload/crop/remove and identity source unchanged. Two initials tests prove rendered default-theme contrast reaches 4.5; real app themes are separately measured by parent's native evidence. |
|
||||
| P6-DC02 | Login root gains main; existing h5-style title explicitly renders h1. | Sign-in/register/provider/verification/2FA/remember-me payloads and routes unchanged. Two mode cases identify title inside main. |
|
||||
| P6-DC03 | Career/Profile/Admin contextual titles/sections get explicit h2/h3/h4; metric values remain styled text. CV Content Sections becomes h3 under existing h2 editing region. Career field-group headings are h4; raw accordion subtitle is span inside existing MUI heading. | Styling/font/spacing remain approved. No global variant mapping or print renderer edit. Career/Admin actual heading sequence, account hierarchy and CV no-write test preserve route-specific context. Existing Admin audit/users cases now require contextual level-two title. |
|
||||
| P6-DC04 | Settings existing tabs link settings-tab-0…3 to settings-panel-0…3. Existing active-only TabPanel gets role, labelledby and translated label fallback. | Inactive panel unmount behavior, Rules session/draft owner, save/discard and mobile selector unchanged. Test traverses all four sections and phone selector. |
|
||||
|
||||
Every changed presentational owner uses MUI/Emotion and existing translations/tokens. No new component framework, font, option, form model, save model, navigation or information architecture was introduced. AppShell is unchanged: the parent's settled native naming proof must determine whether historical transitional flags represent a defect. P5-13 stays withheld/deferred; no model run, AI activation or renderer/pagination modification occurs.
|
||||
|
||||
## Test-first record and current evidence
|
||||
|
||||
Local raw logs and exact Jest JSON remain under `.artifacts/phase6/current/design/`. They are execution artifacts, not portable browser/human qualification.
|
||||
|
||||
- `red.json`: initial eight new cases fail. Initial test setup also used an incorrect CV label and expected DU instead of actual unchanged DD initials; these setup errors are retained rather than called product regressions.
|
||||
- `red-corrected.json` / `red-initials.json`: corrected CV semantics and both Avatar rendered pairs fail for the intended missing feature; initials default pair is 1.878 in the default MUI/JSDOM test environment, distinct from historical real-app ratios.
|
||||
- `red-admin.json`: contextual title assertions fail before Admin source changes.
|
||||
- `red-hierarchy.json`: after actual Career data loads, descendant h6 skips h3; explicit contextual field-group semantics repair it. Earlier wrong Career label and early empty field setup are retained in intermediate logs.
|
||||
- `green.json`: first seven-suite run has 117 passing / 2 failures. One was the corrected Career test setup; the new Admin test also required its own jest-dom matcher import. No product assertion was relaxed.
|
||||
- `green-final.json` and `green-semantic.json`: detect a remaining genuine Admin latest-summary subtitle2=h6 after h4. Its semantic component is corrected to h4.
|
||||
- **`green-race-semantic.json`: 30/30 across complete Profile, AdminSystem and I18n suites, zero failed/skipped/todo.** Other six complete suites in the prior focused run pass their unchanged tests; parent's fresh integrated full-suite run is authoritative final acceptance after the last source edit.
|
||||
- Whitespace check passes. Final type/lint/build, native theme/locale/reflow, complete browser and full regression evidence belong to the parent execution manifest, not an inferred PASS here.
|
||||
|
||||
Added semantic tests: Login 2, Settings 1, meaningful initials 2, Career hierarchy 1, account hierarchy 1, CV hierarchy/no-write 1, AdminSystem hierarchy 1 = **9**; AdminUsers/Audit existing cases were strengthened without changing counts. Existing dirty feedback tests and final full-suite count reconciliation are separately owned by P6-02/final acceptance.
|
||||
|
||||
## P6-02 dependency discovered during independent review
|
||||
|
||||
The existing dirty language-feedback repair could deliver an older failure after a newer successful choice, or keep an earlier Retry that reapplied an obsolete language. Independent review reproduced both cases before fixing them. `red-language-race.json` records two actual failures: obsolete alert delivery and EN reverting to NB through stale Retry.
|
||||
|
||||
I18nProvider now keeps the current choice and latest preference-request sequence at the existing owner. Both failure delivery and Retry check those values; ordinary account save still uses the same endpoint/payload, local choice still changes immediately, server hydration still avoids a write, and storage changes update the current-choice guard. `green-race-semantic.json` includes both passing regressions in the complete six-case I18n suite. **Two additional race tests** are counted in P6-02, separate from nine semantic cases. This is a frontend stale-feedback repair, not a diagnosis or repair of historical database preference500 contention.
|
||||
|
||||
Company failed-save Alert/draft/retry and consistent list/card date locales were independently reviewed as bounded existing-owner corrections. Their final focused/browser results are parent-owned; no duplicate source edits were made here.
|
||||
|
||||
## Preservation and outcome
|
||||
|
||||
Applicable traces: PRES-E02/E06/E07/E08, C06–C09, S01/S03/S04; canonical profile/CV override/save owners and authorization remain untouched. All 57 inherited groups remain contractual; no group is promoted to full PASS from finite semantic tests. P2-D01 must remain ordinary passing in final native regression.
|
||||
|
||||
Bounded corrections are ready for integrated validation. Human screen-reader, physical touch/software keyboard, production-equivalent font/photo, contextual preview main/incomplete axe and operational release evidence remain unverified. Full Phase 7 visual migration and Phase 8 customization were not attempted; Production remains NO-GO.
|
||||
|
||||
## Native error localisation correction
|
||||
|
||||
The first native company error cases actually rendered an Alert and retained the draft, but exposed `Request failed with status code 500` in both languages instead of the caller's translated fallback. The unit API stub had concealed this shared-helper difference. Current source has126 `getApiErrorMessage` call sites; the root is corrected once after existing server-validation/message extraction: ordinary Axios transport failures use the caller's fallback, while structured server explanations, sanitisation, explicit cancellation/session and ordinary application errors are retained. Five real-helper cases cover both locales, HTTP/network/timeout, validation, HTML, cancellation and application errors:2RED/3already passing→5GREEN. Complete-suite/native affected-route validation is repeated after this final helper edit; no assertion is relaxed to accept mixed-language transport text.
|
||||
Reference in New Issue
Block a user