## Summary - standardize the shared verification report family across operation detail, onboarding, and tenant verification widget hosts - standardize normalized settings and normalized diff family wrappers across policy, policy version, and finding detail hosts - add parity and guard coverage plus the full Spec 197 artifacts, including recorded manual smoke evidence ## Testing - focused Sail regression pack from `specs/197-shared-detail-contract/quickstart.md` - local integrated-browser manual smoke for SC-197-003 and SC-197-004 Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #237
46 lines
4.4 KiB
Markdown
46 lines
4.4 KiB
Markdown
# Closing Migration Note: Shared Detail Micro-UI Contract
|
|
|
|
This file is the release-acceptance artifact for Spec 197. Update it as implementation closes so FR-197-015 and D-197-004 are satisfied without overloading `quickstart.md`.
|
|
|
|
## Migrated Hosts
|
|
|
|
### Verification Report family
|
|
|
|
- `OperationRunResource` verification detail surface via `VerificationReportViewer::surface(...)` and shared summary, issues, passed, diagnostics, and unavailable zones
|
|
- `ManagedTenantOnboardingWizard` verification step surface via the same shared verification-family core with onboarding-only assist, acknowledge, and technical-detail variations layered around it
|
|
- `TenantVerificationReport` widget surface via the same completed-state verification-family core while preserving widget-owned no-run and in-progress framing
|
|
|
|
### Normalized Settings family
|
|
|
|
- `PolicyResource` normalized settings surface via `NormalizedSettingsSurface::build(...)`
|
|
- `PolicyVersionResource` normalized settings surface via `NormalizedSettingsSurface::build(...)`
|
|
- `policy-settings-standard.blade.php` retained only as an include-only compatibility shim into the normalized-settings family wrapper
|
|
- `SettingsCatalogSettingsTable` retained as the settings-catalog subtype renderer inside the normalized-settings family
|
|
|
|
### Normalized Diff family
|
|
|
|
- `PolicyVersionResource` normalized diff surface via `NormalizedDiffSurface::build(...)` and the shared summary, grouped-rendering, and empty-state wrapper
|
|
- `FindingResource` normalized diff surface via `NormalizedDiffSurface::build(...)` for available, unavailable, and zero-diff states
|
|
|
|
## Intentionally Allowed Remaining Variations
|
|
|
|
- Onboarding-specific assist, acknowledge, and technical-details actions remain host-scoped variations.
|
|
- No-run and in-progress framing remain host-owned where the host genuinely owns that lifecycle state.
|
|
- `SettingsCatalogSettingsTable` remains the settings-catalog subtype renderer inside the normalized-settings family.
|
|
- Drift-specific surrounding context remains host-owned in `FindingResource` as long as the normalized diff family core stays shared.
|
|
- The compatibility view `policy-settings-standard.blade.php` remains as a thin include-only shim so existing callers/tests do not become a new fork point.
|
|
|
|
## Manual Smoke Evidence
|
|
|
|
- Reviewer: GitHub Copilot via the local integrated browser using the local smoke-login flow
|
|
- Review date: 2026-04-15
|
|
- SC-197-003 result: Pass. Operation detail `Operation #6655`, the onboarding verify-step host, and the tenant verification widget all exposed the same verification-family core with recognizable summary, issues, passed, diagnostics, and read-only zones. Onboarding kept its bounded host-owned assist and technical-detail behavior, while the tenant widget kept its widget-specific framing on the tenant management detail page.
|
|
- SC-197-004 result: Pass. Policy detail `Policy #233`, policy-version detail `Policy Version #270`, drift finding `#79`, and a temporary local-only unavailable drift finding clone all rendered family-consistent normalized settings or diff behavior. The available diff surface matched the policy-version grouped diff contract, and the unavailable diff surface rendered the same family-owned unavailable-state treatment instead of a host-local message.
|
|
- Notes: Local browser smoke used `/admin/local/smoke-login` against Phoenicon in workspace `wp`. The tenant verification widget evidence came from the tenant management detail page rather than the tenant dashboard, which is the current widget host. The local dev dataset did not include a resumable verify-step onboarding draft or a natural missing-version drift finding for this tenant family, so temporary local-only fixture records were created, exercised, and deleted after verification. `./vendor/bin/sail bin pint --dirty --format agent` and the focused Sail regression pack had already passed in this feature session.
|
|
|
|
## Out-of-Scope Follow-Ups
|
|
|
|
- Local dev seed data still lacks a reusable resumable verify-step onboarding draft and a natural missing-version drift finding for this tenant family; future smoke work will need either richer seed data or the same kind of ephemeral local fixtures.
|
|
- Shell-level refactors discovered during implementation remain intentionally out of scope.
|
|
- Monitoring page-state topics discovered during implementation remain intentionally out of scope.
|
|
- Any future shared-detail framework discussion beyond the two proven families remains intentionally out of scope. |