From 12d7eda923aee51eae6d07a0ea5ab88030e021a1 Mon Sep 17 00:00:00 2001 From: master <> Date: Sat, 7 Mar 2026 16:45:18 +0200 Subject: [PATCH] compoennts consolidation and avoid dropping of functionality work in progress --- ..._009_DOCS_ui_component_preservation_map.md | 100 + ...ission_control_scope_preserving_actions.md | 82 + docs/modules/ui/README.md | 14 +- docs/modules/ui/TASKS.md | 5 + .../ui/component-preservation-map/README.md | 115 + .../SUMMARY_TREE.md | 544 ++ .../_tools/generate-map.cjs | 1038 +++ .../dead/admin-notifications/README.md | 18 + .../components/dead/advisory-ai/README.md | 22 + .../components/dead/aoc/README.md | 18 + .../components/dead/approvals/README.md | 20 + .../components/dead/binary-index/README.md | 18 + .../components/dead/change-trace/README.md | 18 + .../components/dead/compare/README.md | 19 + .../components/dead/components/README.md | 27 + .../components/dead/cvss/README.md | 18 + .../components/dead/dashboard/README.md | 19 + .../components/dead/deployments/README.md | 18 + .../components/dead/doctor/README.md | 18 + .../components/dead/environments/README.md | 18 + .../components/dead/evidence-thread/README.md | 19 + .../components/dead/evidence/README.md | 20 + .../AdminNotificationsComponent.md | 47 + .../advisory-ai/AutofixWorkbenchComponent.md | 47 + .../advisory-ai/ChipShowcaseComponent.md | 47 + .../advisory-ai/EvidenceDrilldownComponent.md | 47 + .../advisory-ai/ExplainButtonComponent.md | 47 + .../advisory-ai/ExplanationPanelComponent.md | 47 + .../aoc/AocVerificationWorkbenchComponent.md | 47 + .../approvals/ApprovalDetailPageComponent.md | 47 + .../approvals/ApprovalsInboxPageComponent.md | 47 + .../modals/RequestExceptionModalComponent.md | 47 + .../binary-index/BinaryIndexOpsComponent.md | 47 + .../ChangeTraceViewerComponent.md | 47 + .../DegradedModeBannerComponent.md | 47 + .../graph-mini-map/GraphMiniMapComponent.md | 47 + .../features/cvss/CvssReceiptComponent.md | 47 + .../dashboard/AiRiskDriversComponent.md | 47 + .../dashboard/SourcesDashboardComponent.md | 47 + .../DeploymentDetailPageComponent.md | 47 + .../registry/RegistryChecksPanelComponent.md | 47 + .../EnvironmentsListPageComponent.md | 47 + .../EvidenceThreadListComponent.md | 47 + .../EvidenceThreadViewComponent.md | 47 + .../evidence/EvidenceCenterPageComponent.md | 47 + .../evidence/EvidencePacketPageComponent.md | 47 + .../modals/AuditBundleCreateModalComponent.md | 47 + .../detail/FindingDetailLayoutComponent.md | 47 + .../features/graph/GraphFiltersComponent.md | 47 + .../graph/GraphHotkeyHelpComponent.md | 47 + .../graph/GraphSidePanelsComponent.md | 47 + .../features/home/HomeDashboardComponent.md | 47 + .../AuditPackExportComponent.md | 47 + .../ExplainerTimelineComponent.md | 47 + .../LineageComparePanelComponent.md | 47 + .../LineageDetailPanelComponent.md | 47 + .../lineage-edge/LineageEdgeComponent.md | 47 + .../LineageExportButtonsComponent.md | 47 + .../LineageExportDialogComponent.md | 47 + .../LineageMobileCompareComponent.md | 47 + .../lineage-node/LineageNodeComponent.md | 47 + .../LineageProvenanceCompareComponent.md | 47 + .../LineageSbomDiffComponent.md | 47 + .../LineageVexDiffComponent.md | 47 + .../node-diff-table/NodeDiffTableComponent.md | 47 + .../pinned-panel/PinnedPanelComponent.md | 47 + .../SearchQualityDashboardComponent.md | 47 + .../BundleExplorerComponent.md | 47 + .../ConsentManagementComponent.md | 47 + .../FederationOverviewComponent.md | 47 + .../IntelligenceViewerComponent.md | 47 + .../PrivacyBudgetMonitorComponent.md | 47 + .../platform/PlatformHomePageComponent.md | 47 + .../ai/ConflictVisualizerComponent.md | 47 + .../ai/LiveRulePreviewComponent.md | 47 + .../ai/TestCasePanelComponent.md | 47 + .../ai/VersionHistoryComponent.md | 47 + .../approvals/PolicyApprovalsComponent.md | 47 + .../dashboard/PolicyDashboardComponent.md | 47 + .../editor/PolicyEditorComponent.md | 47 + .../explain/PolicyExplainComponent.md | 47 + .../nl-input/PolicyNlInputComponent.md | 47 + .../PolicyRuleBuilderComponent.md | 47 + .../yaml/PolicyYamlEditorComponent.md | 47 + .../AttestationBadgeComponent.md | 47 + .../EvidenceChainViewerComponent.md | 47 + .../VerdictProofPanelComponent.md | 47 + .../promotions/CreatePromotionComponent.md | 47 + .../promotions/PromotionDetailComponent.md | 47 + .../components/ProofDetailPanelComponent.md | 47 + .../ProofStudioContainerComponent.md | 47 + .../qa/WebFeatureRecheckWorkbenchComponent.md | 47 + .../reachability/PoEDrawerComponent.md | 47 + .../reachability/WitnessPageComponent.md | 47 + .../registry-admin/RegistryAdminComponent.md | 47 + .../components/PlanAuditComponent.md | 47 + .../components/PlanEditorComponent.md | 47 + .../components/PlanListComponent.md | 47 + .../ReleaseControlGovernanceHubComponent.md | 47 + ...eleaseControlGovernanceSectionComponent.md | 47 + .../regions/RegionDetailComponent.md | 47 + .../regions/RegionsOverviewComponent.md | 47 + .../setup/ReleaseControlSetupHomeComponent.md | 47 + .../setup/SetupBundleTemplatesComponent.md | 47 + .../setup/SetupEnvironmentsPathsComponent.md | 47 + .../setup/SetupTargetsAgentsComponent.md | 47 + .../setup/SetupWorkflowsComponent.md | 47 + .../PromotionRequestComponent.md | 47 + .../dashboard/ReleaseDashboardComponent.md | 47 + .../DeploymentListComponent.md | 47 + .../DeploymentMonitorComponent.md | 47 + .../EnvironmentSettingsComponent.md | 47 + .../FreezeWindowEditorComponent.md | 47 + .../target-list/TargetListComponent.md | 47 + .../EnvironmentListComponent.md | 47 + .../EvidenceDetailComponent.md | 47 + .../evidence-list/EvidenceListComponent.md | 47 + .../runs/PipelineRunDetailComponent.md | 47 + .../runs/PipelineRunsListComponent.md | 47 + .../releases/ReleaseDetailPageComponent.md | 47 + .../releases/ReleasesListPageComponent.md | 47 + .../scores/ScoreComparisonComponent.md | 47 + .../RemediationFixesBadgeComponent.md | 47 + .../security/ArtifactDetailPageComponent.md | 47 + .../security/ArtifactsPageComponent.md | 47 + .../security/ExceptionDetailPageComponent.md | 47 + .../features/security/LineagePageComponent.md | 47 + .../security/PatchMapPageComponent.md | 47 + .../security/ReachabilityPageComponent.md | 47 + .../features/security/RiskPageComponent.md | 47 + .../SecurityComponentDetailPageComponent.md | 47 + ...urityEnvironmentRiskDetailPageComponent.md | 47 + .../security/SecurityOverviewPageComponent.md | 47 + .../security/UnknownsPageComponent.md | 47 + .../features/security/VexHubPageComponent.md | 47 + .../security/VulnerabilitiesPageComponent.md | 47 + .../DeterminizationConfigPaneComponent.md | 47 + .../RemediationPrSettingsComponent.md | 47 + .../slo-monitoring/SloAlertListComponent.md | 47 + .../slo-monitoring/SloDashboardComponent.md | 47 + .../slo-monitoring/SloDefinitionsComponent.md | 47 + .../slo-monitoring/SloDetailComponent.md | 47 + .../snapshot-panel/SnapshotPanelComponent.md | 47 + .../timeline-page/TimelinePageComponent.md | 47 + .../triage-inbox/TriageInboxComponent.md | 47 + .../AiRecommendationWorkbenchComponent.md | 47 + .../triage/QuietLaneWorkbenchComponent.md | 47 + .../triage/ReasonCapsuleWorkbenchComponent.md | 47 + .../triage/TriageAuditBundleNewComponent.md | 47 + .../triage/TriageAuditBundlesComponent.md | 47 + .../AiCodeGuardBadgeComponent.md | 47 + .../SnapshotViewerComponent.md | 47 + .../unknowns-list/UnknownsListComponent.md | 47 + .../unknowns/UnknownsBudgetWidgetComponent.md | 47 + .../vex-studio/VexConflictStudioComponent.md | 47 + .../citation-link/CitationLinkComponent.md | 47 + .../citation-link/CitationListComponent.md | 47 + .../evidence-tree/EvidenceTreeComponent.md | 47 + .../FilterPresetPillsComponent.md | 47 + .../triage-card/TriageCardGridComponent.md | 47 + .../triage-filters/TriageFiltersComponent.md | 47 + .../VerdictExplanationComponent.md | 47 + .../VulnerabilityDetailComponent.md | 47 + .../VulnTriageDashboardComponent.md | 47 + .../watchlist/WatchlistPageComponent.md | 47 + .../StepDetailPanelComponent.md | 47 + .../TimeTravelControlsComponent.md | 47 + .../WorkflowVisualizerComponent.md | 47 + .../DeveloperWorkspaceComponent.md | 47 + .../components/dead/findings/README.md | 18 + .../components/dead/graph/README.md | 20 + .../components/dead/home/README.md | 18 + .../components/dead/lineage/README.md | 31 + .../components/dead/operations/README.md | 18 + .../components/dead/overlays/README.md | 19 + .../components/dead/platform-ops/README.md | 22 + .../components/dead/platform/README.md | 18 + .../components/dead/policy-studio/README.md | 28 + .../components/dead/policy/README.md | 20 + .../components/dead/promotions/README.md | 19 + .../components/dead/proof-chain/README.md | 18 + .../components/dead/proof-studio/README.md | 18 + .../components/dead/qa/README.md | 18 + .../components/dead/reachability/README.md | 19 + .../components/dead/registry-admin/README.md | 21 + .../components/dead/release-control/README.md | 26 + .../dead/release-orchestrator/README.md | 29 + .../components/dead/releases/README.md | 19 + .../components/dead/scores/README.md | 18 + .../components/dead/security-risk/README.md | 18 + .../components/dead/security/README.md | 30 + .../components/dead/settings/README.md | 19 + .../components/FixVerdictBadgeComponent.md | 47 + .../components/OfflineBannerComponent.md | 47 + .../components/SourceStatusBadgeComponent.md | 47 + .../components/SourceTypeIconComponent.md | 47 + .../ActionWaterfallComponent.md | 47 + .../EvidenceChecklistComponent.md | 47 + .../graph-diff/GraphSplitViewComponent.md | 47 + .../PlaceholderPageComponent.md | 47 + .../theme-toggle/ThemeToggleComponent.md | 47 + .../ViewModeToggleComponent.md | 47 + .../GateExplainDrawerComponent.md | 47 + .../witness-drawer/WitnessDrawerComponent.md | 47 + .../CopyToClipboardComponent.md | 47 + .../ui/filter-bar/FilterBarComponent.md | 47 + .../ui/inline-code/InlineCodeComponent.md | 47 + .../ui/metric-card/MetricCardComponent.md | 47 + .../ui/page-header/PageHeaderComponent.md | 47 + .../ui/split-pane/SplitPaneComponent.md | 47 + .../ui/timeline-list/TimelineListComponent.md | 47 + .../witness-viewer/WitnessViewerComponent.md | 47 + .../components/dead/slo-monitoring/README.md | 21 + .../components/dead/snapshot/README.md | 18 + .../components/dead/timeline/README.md | 18 + .../components/dead/triage-inbox/README.md | 18 + .../components/dead/triage/README.md | 25 + .../components/dead/ui/README.md | 25 + .../components/dead/unknowns/README.md | 18 + .../components/dead/vex-studio/README.md | 18 + .../components/dead/vuln-explorer/README.md | 24 + .../components/dead/vulnerabilities/README.md | 19 + .../components/dead/watchlist/README.md | 18 + .../dead/workflow-visualization/README.md | 20 + .../components/dead/workspaces/README.md | 18 + .../components/weak-route/ai-runs/README.md | 19 + .../weak-route/aoc-compliance/README.md | 22 + .../components/weak-route/audit-log/README.md | 27 + .../components/weak-route/bundles/README.md | 19 + .../weak-route/console-admin/README.md | 23 + .../components/weak-route/console/README.md | 18 + .../weak-route/deadletter/README.md | 20 + .../weak-route/evidence-export/README.md | 19 + .../weak-route/evidence-pack/README.md | 18 + .../weak-route/exceptions/README.md | 18 + .../features/ai-runs/AiRunViewerComponent.md | 47 + .../features/ai-runs/AiRunsListComponent.md | 47 + .../AocComplianceDashboardComponent.md | 47 + .../ComplianceReportComponent.md | 47 + .../GuardViolationsListComponent.md | 47 + .../aoc-compliance/IngestionFlowComponent.md | 47 + .../ProvenanceValidatorComponent.md | 47 + .../audit-log/AuditAnomaliesComponent.md | 47 + .../audit-log/AuditAuthorityComponent.md | 47 + .../audit-log/AuditCorrelationsComponent.md | 47 + .../audit-log/AuditEventDetailComponent.md | 47 + .../audit-log/AuditExportComponent.md | 47 + .../audit-log/AuditIntegrationsComponent.md | 47 + .../audit-log/AuditLogTableComponent.md | 47 + .../audit-log/AuditPolicyComponent.md | 47 + .../audit-log/AuditTimelineSearchComponent.md | 47 + .../features/audit-log/AuditVexComponent.md | 47 + .../features/bundles/BundleDetailComponent.md | 47 + .../bundles/BundleVersionDetailComponent.md | 47 + .../ConsoleAdminLayoutComponent.md | 47 + .../clients/ClientsListComponent.md | 47 + .../console-admin/roles/RolesListComponent.md | 47 + .../tenants/TenantsListComponent.md | 48 + .../tokens/TokensListComponent.md | 47 + .../console-admin/users/UsersListComponent.md | 47 + .../console/ConsoleProfileComponent.md | 47 + .../DeadLetterDashboardComponent.md | 47 + .../DeadLetterEntryDetailComponent.md | 47 + .../deadletter/DeadLetterQueueComponent.md | 47 + .../EvidenceBundlesComponent.md | 47 + .../ProvenanceVisualizationComponent.md | 47 + .../EvidencePackViewerComponent.md | 47 + .../ExceptionApprovalQueueComponent.md | 47 + .../features/graph/GraphExplorerComponent.md | 47 + .../IntegrationActivityComponent.md | 48 + .../components/IssuerDetailComponent.md | 47 + .../components/IssuerEditorComponent.md | 47 + .../components/IssuerListComponent.md | 48 + .../jobengine/JobEngineDashboardComponent.md | 47 + .../jobengine/JobEngineJobDetailComponent.md | 47 + .../jobengine/JobEngineJobsComponent.md | 47 + .../jobengine/JobEngineQuotasComponent.md | 47 + .../MissionActivityPageComponent.md | 48 + .../MissionAlertsPageComponent.md | 48 + .../features/notify/NotifyPanelComponent.md | 47 + .../components/BundleManagementComponent.md | 47 + .../components/JwksManagementComponent.md | 47 + .../components/OfflineDashboardComponent.md | 52 + .../components/VerificationCenterComponent.md | 47 + .../PackRegistryBrowserComponent.md | 47 + .../IncidentTimelineComponent.md | 47 + .../PlatformHealthDashboardComponent.md | 47 + .../platform-health/ServiceDetailComponent.md | 47 + .../DataIntegrityJobRunDetailPageComponent.md | 47 + .../DataQualitySlosPageComponent.md | 47 + .../data-integrity/DlqReplaysPageComponent.md | 47 + .../FeedsFreshnessPageComponent.md | 47 + .../IntegrationConnectivityPageComponent.md | 47 + .../NightlyOpsReportPageComponent.md | 47 + .../ReachabilityIngestHealthPageComponent.md | 47 + .../ScanPipelineHealthPageComponent.md | 47 + ...ormSetupDefaultsGuardrailsPageComponent.md | 47 + .../PlatformSetupFeedPolicyPageComponent.md | 47 + .../PlatformSetupGateProfilesPageComponent.md | 47 + ...latformSetupPromotionPathsPageComponent.md | 47 + ...rmSetupRegionsEnvironmentsPageComponent.md | 47 + ...tformSetupReleaseTemplatesPageComponent.md | 47 + ...latformSetupWorkflowsGatesPageComponent.md | 47 + .../ConflictResolutionWizardComponent.md | 49 + .../GovernanceAuditComponent.md | 49 + .../ImpactPreviewComponent.md | 49 + .../PolicyConflictDashboardComponent.md | 49 + .../PolicyValidatorComponent.md | 49 + .../RiskBudgetConfigComponent.md | 52 + .../RiskProfileEditorComponent.md | 52 + .../RiskProfileListComponent.md | 49 + .../policy-governance/SchemaDocsComponent.md | 49 + .../SchemaPlaygroundComponent.md | 49 + .../SealedModeControlComponent.md | 49 + .../SealedModeOverridesComponent.md | 49 + .../StalenessConfigComponent.md | 49 + .../TrustWeightingComponent.md | 49 + .../workspace/PolicyWorkspaceComponent.md | 49 + .../QuotaAlertConfigComponent.md | 47 + .../quota-dashboard/QuotaForecastComponent.md | 47 + .../QuotaReportExportComponent.md | 47 + .../TenantQuotaDetailComponent.md | 47 + .../TenantQuotaTableComponent.md | 47 + .../ThrottleContextComponent.md | 47 + .../WorkflowEditorComponent.md | 47 + .../releases/HotfixDetailPageComponent.md | 47 + .../ReleaseOpsOverviewPageComponent.md | 47 + .../source-wizard/SourceWizardComponent.md | 50 + .../scanner-ops/ScannerOpsComponent.md | 47 + .../components/AnalyzerHealthComponent.md | 47 + .../components/BaselineListComponent.md | 47 + .../DeterminismSettingsComponent.md | 47 + .../components/OfflineKitListComponent.md | 48 + .../PerformanceBaselineComponent.md | 47 + .../ScheduleManagementComponent.md | 47 + .../scheduler-ops/WorkerFleetComponent.md | 47 + .../security-risk/AdvisorySourcesComponent.md | 47 + .../FindingDetailPageComponent.md | 48 + .../RemediationFixDetailComponent.md | 47 + .../SymbolMarketplaceCatalogComponent.md | 47 + .../SymbolSourceDetailComponent.md | 47 + .../security/SbomGraphPageComponent.md | 47 + .../AiPreferencesWorkbenchComponent.md | 47 + .../IntegrationDetailPageComponent.md | 47 + .../language/LanguageSettingsPageComponent.md | 47 + .../NotificationsSettingsPageComponent.md | 47 + .../PolicyGovernanceSettingsPageComponent.md | 49 + .../ReleaseControlSettingsPageComponent.md | 47 + .../SecurityDataSettingsPageComponent.md | 49 + .../trust/TrustSettingsPageComponent.md | 53 + .../SignalsRuntimeDashboardComponent.md | 47 + .../EnvironmentPosturePageComponent.md | 48 + .../TopologyAgentGroupDetailPageComponent.md | 48 + .../TopologyConnectivityPageComponent.md | 48 + .../TopologyEnvironmentDetailPageComponent.md | 52 + .../TopologyHostDetailPageComponent.md | 48 + .../TopologyInventoryPageComponent.md | 50 + .../TopologyRuntimeDriftPageComponent.md | 48 + .../TopologyTargetDetailPageComponent.md | 48 + .../triage/TriageWorkspaceComponent.md | 49 + .../TrivyDbSettingsPageComponent.md | 47 + .../trust-admin/AirgapAuditComponent.md | 48 + .../CertificateInventoryComponent.md | 48 + .../trust-admin/IncidentAuditComponent.md | 48 + .../trust-admin/IssuerTrustListComponent.md | 48 + .../trust-admin/TrustAnalyticsComponent.md | 48 + .../trust-admin/TrustAuditLogComponent.md | 48 + .../DeterminizationReviewComponent.md | 47 + .../GreyQueueDashboardComponent.md | 47 + .../UnknownDetailComponent.md | 47 + .../UnknownsDashboardComponent.md | 47 + .../components/weak-route/graph/README.md | 18 + .../weak-route/integration-hub/README.md | 18 + .../weak-route/issuer-trust/README.md | 20 + .../components/weak-route/jobengine/README.md | 21 + .../weak-route/mission-control/README.md | 19 + .../components/weak-route/notify/README.md | 18 + .../weak-route/offline-kit/README.md | 21 + .../weak-route/pack-registry/README.md | 18 + .../weak-route/platform-health/README.md | 20 + .../weak-route/platform-ops/README.md | 25 + .../components/weak-route/platform/README.md | 24 + .../weak-route/policy-governance/README.md | 31 + .../weak-route/policy-studio/README.md | 18 + .../weak-route/quota-dashboard/README.md | 23 + .../weak-route/release-orchestrator/README.md | 18 + .../components/weak-route/releases/README.md | 19 + .../weak-route/sbom-sources/README.md | 18 + .../weak-route/scanner-ops/README.md | 23 + .../weak-route/scheduler-ops/README.md | 19 + .../weak-route/security-risk/README.md | 22 + .../components/weak-route/security/README.md | 18 + .../components/weak-route/settings/README.md | 25 + .../components/weak-route/signals/README.md | 18 + .../components/weak-route/topology/README.md | 25 + .../components/weak-route/triage/README.md | 18 + .../weak-route/trivy-db-settings/README.md | 18 + .../weak-route/trust-admin/README.md | 23 + .../weak-route/unknowns-tracking/README.md | 21 + .../component-preservation-map/inventory.json | 7303 +++++++++++++++++ docs/modules/ui/implementation_plan.md | 6 + sidebar-collapsed-state.png | Bin 0 -> 124580 bytes sidebar-flyout-hover.png | Bin 0 -> 124580 bytes 403 files changed, 25343 insertions(+), 4 deletions(-) create mode 100644 docs/implplan/SPRINT_20260307_009_DOCS_ui_component_preservation_map.md create mode 100644 docs/implplan/SPRINT_20260307_016_FE_mission_control_scope_preserving_actions.md create mode 100644 docs/modules/ui/component-preservation-map/README.md create mode 100644 docs/modules/ui/component-preservation-map/SUMMARY_TREE.md create mode 100644 docs/modules/ui/component-preservation-map/_tools/generate-map.cjs create mode 100644 docs/modules/ui/component-preservation-map/components/dead/admin-notifications/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/advisory-ai/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/aoc/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/approvals/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/binary-index/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/change-trace/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/compare/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/components/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/cvss/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/dashboard/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/deployments/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/doctor/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/environments/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/evidence-thread/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/evidence/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/admin-notifications/AdminNotificationsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/AutofixWorkbenchComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/ChipShowcaseComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/EvidenceDrilldownComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/ExplainButtonComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/ExplanationPanelComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/aoc/AocVerificationWorkbenchComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/approvals/ApprovalDetailPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/approvals/ApprovalsInboxPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/approvals/modals/RequestExceptionModalComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/binary-index/BinaryIndexOpsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/change-trace/ChangeTraceViewerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/compare/components/degraded-mode-banner/DegradedModeBannerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/compare/components/graph-mini-map/GraphMiniMapComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/cvss/CvssReceiptComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/dashboard/AiRiskDriversComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/dashboard/SourcesDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/deployments/DeploymentDetailPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/doctor/components/registry/RegistryChecksPanelComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/environments/EnvironmentsListPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/evidence-thread/components/evidence-thread-list/EvidenceThreadListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/evidence-thread/components/evidence-thread-view/EvidenceThreadViewComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/evidence/EvidenceCenterPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/evidence/EvidencePacketPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/evidence/modals/AuditBundleCreateModalComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/findings/detail/FindingDetailLayoutComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/graph/GraphFiltersComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/graph/GraphHotkeyHelpComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/graph/GraphSidePanelsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/home/HomeDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/audit-pack-export/AuditPackExportComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/explainer-timeline/ExplainerTimelineComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-compare-panel/LineageComparePanelComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-detail-panel/LineageDetailPanelComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-edge/LineageEdgeComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-export-buttons/LineageExportButtonsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-export-dialog/LineageExportDialogComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-mobile-compare/LineageMobileCompareComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-node/LineageNodeComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-provenance-compare/LineageProvenanceCompareComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-sbom-diff/LineageSbomDiffComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-vex-diff/LineageVexDiffComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/node-diff-table/NodeDiffTableComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/pinned-explanation/pinned-panel/PinnedPanelComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/operations/search-quality/SearchQualityDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/BundleExplorerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/ConsentManagementComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/FederationOverviewComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/IntelligenceViewerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/PrivacyBudgetMonitorComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/platform/PlatformHomePageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/ConflictVisualizerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/LiveRulePreviewComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/TestCasePanelComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/VersionHistoryComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/approvals/PolicyApprovalsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/dashboard/PolicyDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/editor/PolicyEditorComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/explain/PolicyExplainComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/nl-input/PolicyNlInputComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/rule-builder/PolicyRuleBuilderComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/yaml/PolicyYamlEditorComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/policy/components/attestation-badge/AttestationBadgeComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/policy/components/evidence-chain-viewer/EvidenceChainViewerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/policy/components/verdict-proof-panel/VerdictProofPanelComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/promotions/CreatePromotionComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/promotions/PromotionDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/proof-chain/components/ProofDetailPanelComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/proof-studio/components/proof-studio-container/ProofStudioContainerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/qa/WebFeatureRecheckWorkbenchComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/reachability/PoEDrawerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/reachability/WitnessPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/RegistryAdminComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/components/PlanAuditComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/components/PlanEditorComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/components/PlanListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-control/governance/ReleaseControlGovernanceHubComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-control/governance/ReleaseControlGovernanceSectionComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-control/regions/RegionDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-control/regions/RegionsOverviewComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/ReleaseControlSetupHomeComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupBundleTemplatesComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupEnvironmentsPathsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupTargetsAgentsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupWorkflowsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/approvals/promotion-request/PromotionRequestComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/dashboard/ReleaseDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/deployments/deployment-list/DeploymentListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/deployments/deployment-monitor/DeploymentMonitorComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/components/environment-settings/EnvironmentSettingsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/components/freeze-window-editor/FreezeWindowEditorComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/components/target-list/TargetListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/environment-list/EnvironmentListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/evidence/evidence-detail/EvidenceDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/evidence/evidence-list/EvidenceListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/runs/PipelineRunDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/runs/PipelineRunsListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/releases/ReleaseDetailPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/releases/ReleasesListPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/scores/ScoreComparisonComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/security-risk/remediation/RemediationFixesBadgeComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/security/ArtifactDetailPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/security/ArtifactsPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/security/ExceptionDetailPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/security/LineagePageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/security/PatchMapPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/security/ReachabilityPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/security/RiskPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/security/SecurityComponentDetailPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/security/SecurityEnvironmentRiskDetailPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/security/SecurityOverviewPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/security/UnknownsPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/security/VexHubPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/security/VulnerabilitiesPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/settings/DeterminizationConfigPaneComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/settings/RemediationPrSettingsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloAlertListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloDefinitionsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/snapshot/components/snapshot-panel/SnapshotPanelComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/timeline/pages/timeline-page/TimelinePageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/triage-inbox/TriageInboxComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/triage/AiRecommendationWorkbenchComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/triage/QuietLaneWorkbenchComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/triage/ReasonCapsuleWorkbenchComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/triage/TriageAuditBundleNewComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/triage/TriageAuditBundlesComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/triage/components/ai-code-guard-badge/AiCodeGuardBadgeComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/triage/components/snapshot-viewer/SnapshotViewerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/triage/components/unknowns-list/UnknownsListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/unknowns/UnknownsBudgetWidgetComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/vex-studio/VexConflictStudioComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/citation-link/CitationLinkComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/citation-link/CitationListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/evidence-tree/EvidenceTreeComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/filter-preset-pills/FilterPresetPillsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/triage-card/TriageCardGridComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/triage-filters/TriageFiltersComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/verdict-explanation/VerdictExplanationComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/vulnerabilities/VulnerabilityDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/vulnerabilities/components/vuln-triage-dashboard/VulnTriageDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/watchlist/WatchlistPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/workflow-visualization/components/step-detail-panel/StepDetailPanelComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/workflow-visualization/components/time-travel-controls/TimeTravelControlsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/workflow-visualization/components/workflow-visualizer/WorkflowVisualizerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/features/workspaces/developer/components/developer-workspace/DeveloperWorkspaceComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/findings/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/graph/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/home/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/lineage/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/operations/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/overlays/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/platform-ops/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/platform/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/policy-studio/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/policy/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/promotions/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/proof-chain/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/proof-studio/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/qa/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/reachability/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/registry-admin/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/release-control/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/release-orchestrator/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/releases/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/scores/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/security-risk/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/security/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/settings/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/components/FixVerdictBadgeComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/components/OfflineBannerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/components/SourceStatusBadgeComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/components/SourceTypeIconComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/components/action-waterfall/ActionWaterfallComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/components/evidence-checklist/EvidenceChecklistComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/components/graph-diff/GraphSplitViewComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/components/placeholder-page/PlaceholderPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/components/theme-toggle/ThemeToggleComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/components/view-mode-toggle/ViewModeToggleComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/overlays/gate-explain-drawer/GateExplainDrawerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/overlays/witness-drawer/WitnessDrawerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/ui/copy-to-clipboard/CopyToClipboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/ui/filter-bar/FilterBarComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/ui/inline-code/InlineCodeComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/ui/metric-card/MetricCardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/ui/page-header/PageHeaderComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/ui/split-pane/SplitPaneComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/ui/timeline-list/TimelineListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/shared/ui/witness-viewer/WitnessViewerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/slo-monitoring/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/snapshot/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/timeline/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/triage-inbox/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/triage/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/ui/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/unknowns/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/vex-studio/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/vuln-explorer/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/vulnerabilities/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/watchlist/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/workflow-visualization/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/dead/workspaces/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/ai-runs/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/aoc-compliance/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/audit-log/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/bundles/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/console-admin/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/console/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/deadletter/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/evidence-export/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/evidence-pack/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/exceptions/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/ai-runs/AiRunViewerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/ai-runs/AiRunsListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/AocComplianceDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/ComplianceReportComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/GuardViolationsListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/IngestionFlowComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/ProvenanceValidatorComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditAnomaliesComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditAuthorityComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditCorrelationsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditEventDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditExportComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditIntegrationsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditLogTableComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditPolicyComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditTimelineSearchComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditVexComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/bundles/BundleDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/bundles/BundleVersionDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/ConsoleAdminLayoutComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/clients/ClientsListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/roles/RolesListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/tenants/TenantsListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/tokens/TokensListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/users/UsersListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/console/ConsoleProfileComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/deadletter/DeadLetterDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/deadletter/DeadLetterEntryDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/deadletter/DeadLetterQueueComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/evidence-export/EvidenceBundlesComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/evidence-export/ProvenanceVisualizationComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/evidence-pack/EvidencePackViewerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/exceptions/ExceptionApprovalQueueComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/graph/GraphExplorerComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/integration-hub/IntegrationActivityComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/issuer-trust/components/IssuerDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/issuer-trust/components/IssuerEditorComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/issuer-trust/components/IssuerListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineJobDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineJobsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineQuotasComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/mission-control/MissionActivityPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/mission-control/MissionAlertsPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/notify/NotifyPanelComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/BundleManagementComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/JwksManagementComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/OfflineDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/VerificationCenterComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/pack-registry/PackRegistryBrowserComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform-health/IncidentTimelineComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform-health/PlatformHealthDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform-health/ServiceDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/DataIntegrityJobRunDetailPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/DataQualitySlosPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/DlqReplaysPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/FeedsFreshnessPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/IntegrationConnectivityPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/NightlyOpsReportPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/ReachabilityIngestHealthPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/ScanPipelineHealthPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupDefaultsGuardrailsPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupFeedPolicyPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupGateProfilesPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupPromotionPathsPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupRegionsEnvironmentsPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupReleaseTemplatesPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupWorkflowsGatesPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/ConflictResolutionWizardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/GovernanceAuditComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/ImpactPreviewComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/PolicyConflictDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/PolicyValidatorComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/RiskBudgetConfigComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/RiskProfileEditorComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/RiskProfileListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SchemaDocsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SchemaPlaygroundComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SealedModeControlComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SealedModeOverridesComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/StalenessConfigComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/TrustWeightingComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/policy-studio/workspace/PolicyWorkspaceComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/QuotaAlertConfigComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/QuotaForecastComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/QuotaReportExportComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/TenantQuotaDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/TenantQuotaTableComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/ThrottleContextComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/release-orchestrator/workflows/workflow-editor/WorkflowEditorComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/releases/HotfixDetailPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/releases/ReleaseOpsOverviewPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/sbom-sources/components/source-wizard/SourceWizardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/ScannerOpsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/AnalyzerHealthComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/BaselineListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/DeterminismSettingsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/OfflineKitListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/PerformanceBaselineComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/scheduler-ops/ScheduleManagementComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/scheduler-ops/WorkerFleetComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/AdvisorySourcesComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/FindingDetailPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/remediation/RemediationFixDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/symbol-sources/SymbolMarketplaceCatalogComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/symbol-sources/SymbolSourceDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/security/SbomGraphPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/settings/AiPreferencesWorkbenchComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/settings/integrations/IntegrationDetailPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/settings/language/LanguageSettingsPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/settings/notifications/NotificationsSettingsPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/settings/policy/PolicyGovernanceSettingsPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/settings/release-control/ReleaseControlSettingsPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/settings/security-data/SecurityDataSettingsPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/settings/trust/TrustSettingsPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/signals/SignalsRuntimeDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/topology/EnvironmentPosturePageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyAgentGroupDetailPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyConnectivityPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyEnvironmentDetailPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyHostDetailPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyInventoryPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyRuntimeDriftPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyTargetDetailPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/triage/TriageWorkspaceComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/trivy-db-settings/TrivyDbSettingsPageComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/AirgapAuditComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/CertificateInventoryComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/IncidentAuditComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/IssuerTrustListComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/TrustAnalyticsComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/TrustAuditLogComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/DeterminizationReviewComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/GreyQueueDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/UnknownDetailComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/UnknownsDashboardComponent.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/graph/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/integration-hub/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/issuer-trust/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/jobengine/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/mission-control/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/notify/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/offline-kit/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/pack-registry/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/platform-health/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/platform-ops/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/platform/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/policy-governance/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/policy-studio/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/quota-dashboard/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/release-orchestrator/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/releases/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/sbom-sources/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/scanner-ops/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/scheduler-ops/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/security-risk/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/security/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/settings/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/signals/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/topology/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/triage/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/trivy-db-settings/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/trust-admin/README.md create mode 100644 docs/modules/ui/component-preservation-map/components/weak-route/unknowns-tracking/README.md create mode 100644 docs/modules/ui/component-preservation-map/inventory.json create mode 100644 sidebar-collapsed-state.png create mode 100644 sidebar-flyout-hover.png diff --git a/docs/implplan/SPRINT_20260307_009_DOCS_ui_component_preservation_map.md b/docs/implplan/SPRINT_20260307_009_DOCS_ui_component_preservation_map.md new file mode 100644 index 000000000..5e8539fd9 --- /dev/null +++ b/docs/implplan/SPRINT_20260307_009_DOCS_ui_component_preservation_map.md @@ -0,0 +1,100 @@ +# Sprint 20260307-009 - UI Component Preservation Map + +## Topic & Scope +- Build a durable map of unused and weakly surfaced Angular components in the Stella Ops web console. +- Capture first-pass preservation guidance for each component: archive, merge, preserve, wire in, or investigate. +- Create a per-component dossier tree so later iterations can deepen the judgment without restarting discovery. +- Working directory: `docs/modules/ui/component-preservation-map`. +- Expected evidence: generated inventory, per-component markdown dossiers, summary tree, and task-board links. + +## Dependencies & Concurrency +- Depends on: + - `docs/modules/ui/README.md` + - `docs/modules/ui/architecture.md` + - `docs/modules/ui/implementation_plan.md` + - `docs/modules/platform/architecture-overview.md` +- Safe parallelism: + - Static inventory generation can run in parallel with manual review of high-value clusters. + - Later dossier enrichment can be split by feature family once the index format is frozen. + +## Documentation Prerequisites +- `docs/modules/ui/README.md` +- `docs/modules/ui/architecture.md` +- `docs/modules/ui/implementation_plan.md` +- `docs/modules/ui/v2-rewire/source-of-truth.md` +- `docs/modules/platform/architecture-overview.md` + +## Delivery Tracker + +### DOCS-UCM-001 - Preservation map scaffold and inventory +Status: DONE +Dependency: none +Owners: Documentation author, Project Manager +Task description: +- Create the preservation-map doc tree under `docs/modules/ui/` with a stable index, a machine-readable inventory, and one markdown dossier per candidate component. +- Inventory should distinguish high-confidence dead components from routed-but-weakly-surfaced components so later review does not conflate them. + +Completion criteria: +- [x] Root index exists for the preservation map. +- [x] Inventory is deterministic and grouped by feature family. +- [x] Each candidate component has a dossier file named after the component. + +### DOCS-UCM-002 - First-pass preservation judgments +Status: DONE +Dependency: DOCS-UCM-001 +Owners: Documentation author, Product Manager +Task description: +- For every inventoried component, document what the component appears to do, why it likely fell out of the active product, and whether its ideas are worth preserving. +- Use a constrained recommendation set: `archive`, `merge`, `preserve`, `wire-in`, `investigate`. + +Completion criteria: +- [x] Every dossier has a first-pass recommendation. +- [x] Recommendations identify likely successor surfaces or merge targets when they exist. +- [x] High-value clusters have explicit rationale for preservation vs retirement. + +### DOCS-UCM-003 - Summary tree and iteration plan +Status: DONE +Dependency: DOCS-UCM-002 +Owners: Documentation author, Project Manager +Task description: +- Produce a summary tree that shows the feature branches, what each branch is, and what appears worth keeping in the final product. +- Record the remaining gaps that require later iterations and deeper cross-doc validation. + +Completion criteria: +- [x] Summary tree exists and is linked from the root index. +- [x] Branch-level keep/merge/archive guidance is captured. +- [x] Follow-up investigation areas are listed for the next pass. + +### DOCS-UCM-004 - Deep enrichment against Stella Ops dossiers +Status: TODO +Dependency: DOCS-UCM-003 +Owners: Documentation author, Product Manager +Task description: +- Enrich the first-pass dossiers with stronger linkage to product docs, runbooks, contracts, and route-migration decisions. +- Resolve ambiguous components whose current value cannot be judged from frontend code alone. + +Completion criteria: +- [ ] High-value branches have corroborating doc links. +- [ ] Ambiguous components are reduced to a smaller explicit investigate set. +- [ ] Final keep/merge/wire recommendations can be defended against current product documentation. + +## Execution Log +| Date (UTC) | Update | Owner | +| --- | --- | --- | +| 2026-03-07 | Sprint created for a multi-iteration preservation map of unused and weakly surfaced UI components. | Project Manager | +| 2026-03-07 | Generated first-pass preservation map artifacts under `docs/modules/ui/component-preservation-map/`: root index, summary tree, deterministic inventory, 303 component dossiers, and 89 branch indexes. | Documentation author | + +## Decisions & Risks +- Decision: first iteration will prioritize a complete map and first-pass judgment over exhaustive historical certainty. +- Decision: preservation guidance uses five stable labels only: `archive`, `merge`, `preserve`, `wire-in`, `investigate`. +- Decision: first-pass artifact set is now rooted at `docs/modules/ui/component-preservation-map/README.md`, with `SUMMARY_TREE.md` and `inventory.json` as the stable entry points. +- Risk: routed child pages can appear unreachable in static analysis when they are only exposed through relative tab navigation. +- Mitigation: record routed-but-weakly-surfaced components separately from high-confidence dead components. +- Risk: some components express product intent that lives mostly in docs rather than current route wiring. +- Mitigation: keep a follow-up enrichment task that cross-links module docs, contracts, and runbooks before final retirement decisions. +- Evidence snapshot: first pass produced 167 `dead` components and 136 `weak-route` components, each with a markdown dossier for later enrichment. + +## Next Checkpoints +- 2026-03-08: Preservation-map scaffold and initial inventory complete. +- 2026-03-09: First-pass recommendations written for all inventoried components. +- 2026-03-10: Summary tree reviewed and next-pass deep-dive list cut. diff --git a/docs/implplan/SPRINT_20260307_016_FE_mission_control_scope_preserving_actions.md b/docs/implplan/SPRINT_20260307_016_FE_mission_control_scope_preserving_actions.md new file mode 100644 index 000000000..fc239fa26 --- /dev/null +++ b/docs/implplan/SPRINT_20260307_016_FE_mission_control_scope_preserving_actions.md @@ -0,0 +1,82 @@ +# Sprint 20260307-016 - FE Mission Control Scope-Preserving Actions + +## Topic & Scope +- Repair mission-control and mission-board summary/action links so they preserve the active tenant, region, environment, and time-window scope when routing into downstream surfaces. +- Eliminate reliance on target-route redirects accidentally keeping or dropping query parameters depending on the destination module. +- Add focused Angular coverage for the affected mission links, then replay the broken actions with live Playwright from `https://stella-ops.local`. +- Working directory: `src/Web/StellaOps.Web`. +- Expected evidence: focused Angular tests, live Playwright action checks on mission board/alerts/activity links, and sprint execution log updates. + +## Dependencies & Concurrency +- Depends on the earlier mission-board route and environment-scope fixes (`SPRINT_20260307_012`, `SPRINT_20260307_013`, and `SPRINT_20260307_015`) because this iteration preserves the already-correct global scope instead of redefining it. +- Safe parallelism: stay inside `src/Web/StellaOps.Web` plus this sprint file; do not touch unrelated navigation/settings/sidebar/user-menu work that other agents are editing. +- Scope is limited to mission-control and mission-board action links, not downstream page data models. + +## Documentation Prerequisites +- `src/Web/StellaOps.Web/AGENTS.md` +- `src/Web/StellaOps.Web/src/app/features/dashboard-v3/dashboard-v3.component.ts` +- `src/Web/StellaOps.Web/src/app/features/mission-control/mission-alerts-page.component.ts` +- `src/Web/StellaOps.Web/src/app/features/mission-control/mission-activity-page.component.ts` + +## Delivery Tracker + +### FE-MISSION-001 - Reproduce scope loss from mission action links +Status: DOING +Dependency: none +Owners: QA +Task description: +- Replay the live mission alerts/activity actions from the authenticated shell with Playwright. +- Capture which links drop `tenant`, `regions`, and `environments` when leaving mission-control surfaces. + +Completion criteria: +- [ ] Live Playwright evidence shows the exact mission actions that lose active scope. +- [ ] The defect is reduced to a specific link-contract pattern instead of a generic downstream page issue. + +### FE-MISSION-002 - Make mission action links explicitly preserve active scope +Status: TODO +Dependency: FE-MISSION-001 +Owners: Developer +Task description: +- Update mission-board and mission-control action links so they use explicit query-param merge semantics. +- Keep the fix scoped to the action layer so downstream pages receive the already-selected global context without route-specific patches. + +Completion criteria: +- [ ] Mission-board summary, alert, activity, and cross-domain action links preserve active scope during navigation. +- [ ] Mission-control alerts and activity action links preserve active scope during navigation. + +### FE-MISSION-003 - Add focused Angular coverage for scope-preserving links +Status: TODO +Dependency: FE-MISSION-002 +Owners: Test Automation +Task description: +- Add focused tests that assert the affected mission action links use the explicit query-param merge contract. +- Keep the coverage under `src/app/core/testing` so it remains in the focused Angular test include set. + +Completion criteria: +- [ ] Focused Angular tests assert the relevant mission links use `queryParamsHandling="merge"`. +- [ ] The tests fail before the fix and pass after it. + +### FE-MISSION-004 - Replay mission actions live after the patch +Status: TODO +Dependency: FE-MISSION-003 +Owners: QA +Task description: +- Re-run the previously broken mission alerts/activity actions against the live authenticated shell. +- Confirm the downstream pages keep the original tenant/region/environment scope after navigation. + +Completion criteria: +- [ ] Live Playwright confirms approvals, disposition, data-integrity, and release-runs actions retain the scoped query string. +- [ ] Live Playwright confirms the fixed links no longer depend on destination-route behavior to keep context. + +## Execution Log +| Date (UTC) | Update | Owner | +| --- | --- | --- | +| 2026-03-07 | Sprint created after live Playwright from `/mission-control/alerts` and `/mission-control/activity` showed several actions dropping `tenant=demo-prod®ions=us-east&environments=stage` on navigation, while others kept it only by route-specific accident. | QA | + +## Decisions & Risks +- Decision: fix scope preservation at the mission-link layer with explicit query-param merge semantics rather than modifying every downstream route that currently receives an empty or partial query string. +- Risk: the main dashboard uses the same static mission links, so the fix must cover both the dedicated mission-control pages and the mission-board surface in the same iteration. + +## Next Checkpoints +- 2026-03-07: land the scope-preserving mission action patch and focused Angular coverage. +- 2026-03-07: replay the affected mission actions with live Playwright and continue the authenticated page/action sweep. diff --git a/docs/modules/ui/README.md b/docs/modules/ui/README.md index a1b9b02c6..49c77ddef 100644 --- a/docs/modules/ui/README.md +++ b/docs/modules/ui/README.md @@ -8,6 +8,11 @@ The Console presents operator dashboards for scans, policies, VEX evidence, runtime posture, and admin workflows. +## Latest updates (2026-03-07) +- Generated the first-pass UI component preservation map at `component-preservation-map/README.md`. +- The preservation map currently tracks 303 candidate components: 167 high-confidence dead surfaces and 136 routed-but-weakly-surfaced surfaces. +- Each candidate now has a stable markdown dossier so later iterations can deepen keep / merge / wire / archive decisions without rebuilding the inventory. + ## Latest updates (2026-02-21) - Runtime mock cutover completed for policy simulation history/conflict/batch flows and graph explorer data loading in `src/Web/StellaOps.Web/src/app/**`. - Runtime bindings now resolve to backend APIs for: @@ -43,10 +48,11 @@ The Console presents operator dashboards for scans, policies, VEX evidence, runt - Console architecture doc for layout and SSE fan-out. - Operator guide: `../../UI_GUIDE.md`. Accessibility: `../../accessibility.md`. Security: `../../security/`. -## Related resources -- ./operations/auth-smoke.md -- ./operations/observability.md -- ./console-architecture.md +## Related resources +- ./operations/auth-smoke.md +- ./operations/observability.md +- ./console-architecture.md +- ./component-preservation-map/README.md ## Backlog references - DOCS-CONSOLE-23-001 … DOCS-CONSOLE-23-003 baseline (done). diff --git a/docs/modules/ui/TASKS.md b/docs/modules/ui/TASKS.md index 83b6c9e9c..9c8dea7f2 100644 --- a/docs/modules/ui/TASKS.md +++ b/docs/modules/ui/TASKS.md @@ -6,6 +6,7 @@ - `docs/implplan/SPRINT_20260306_002_FE_search_advisory_quality_ux.md` - `docs/implplan/SPRINT_20260307_004_FE_self_serve_search_answer_first.md` - `docs/implplan/SPRINT_20260307_006_FE_self_serve_rollout_and_gap_closure.md` +- `docs/implplan/SPRINT_20260307_009_DOCS_ui_component_preservation_map.md` ## Delivery Tasks - [DONE] 041-T1 Root IA/nav rewrite (Mission Control + Ops + Setup) @@ -44,3 +45,7 @@ - [DONE] FE-UX-E2E Playwright coverage for mode switching, rescue flows, and AdvisoryAI next-step cards - [DONE] WEB-CTX-NONOBVIOUS Strategic non-obvious suggestion recipes (cross-domain + action-aware) - [DOING] FE-QA-LOOP-001 Web-only Playwright full-iteration loop at stella-ops.local (fresh route/action evidence, triage, fix, retest) +- [DONE] DOCS-UCM-001 UI component preservation map scaffold and inventory +- [DONE] DOCS-UCM-002 First-pass preservation judgments for unused and weakly surfaced UI components +- [DONE] DOCS-UCM-003 Summary tree for keep / merge / wire / archive decisions +- [TODO] DOCS-UCM-004 Deep enrichment against Stella Ops product and module docs diff --git a/docs/modules/ui/component-preservation-map/README.md b/docs/modules/ui/component-preservation-map/README.md new file mode 100644 index 000000000..3a7849e44 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/README.md @@ -0,0 +1,115 @@ +# UI Component Preservation Map + +Generated on 2026-03-07. This map captures Angular components that currently look either high-confidence dead or routed-but-weakly-surfaced in the Stella Ops web console. + +## How To Read This Map +- `dead`: no active route target and no runtime references outside tests/stories. +- `weak-route`: still routed, but the current static scan found no menu entry and no obvious absolute page-action path to the route. +- Recommendation labels are intentionally constrained: `archive`, `merge`, `preserve`, `wire-in`, `investigate`. + +## Counts +- Dead components: 167 +- Weak-route components: 136 +- Total candidates: 303 + +## Main Artifacts +- [Summary Tree](./SUMMARY_TREE.md) +- [Inventory JSON](./inventory.json) + +## Branch Index +### Dead +- [Admin Notifications](./components/dead/admin-notifications/README.md) - 1 components, default `investigate` +- [Advisory Ai](./components/dead/advisory-ai/README.md) - 5 components, default `investigate` +- [Aoc](./components/dead/aoc/README.md) - 1 components, default `investigate` +- [Approvals](./components/dead/approvals/README.md) - 3 components, default `investigate` +- [Binary Index](./components/dead/binary-index/README.md) - 1 components, default `investigate` +- [Change Trace](./components/dead/change-trace/README.md) - 1 components, default `investigate` +- [Compare](./components/dead/compare/README.md) - 2 components, default `investigate` +- [Components](./components/dead/components/README.md) - 10 components, default `investigate` +- [Cvss](./components/dead/cvss/README.md) - 1 components, default `investigate` +- [Dashboard](./components/dead/dashboard/README.md) - 2 components, default `investigate` +- [Deployments](./components/dead/deployments/README.md) - 1 components, default `investigate` +- [Doctor](./components/dead/doctor/README.md) - 1 components, default `investigate` +- [Environments](./components/dead/environments/README.md) - 1 components, default `investigate` +- [Evidence](./components/dead/evidence/README.md) - 3 components, default `investigate` +- [Evidence Thread](./components/dead/evidence-thread/README.md) - 2 components, default `investigate` +- [Findings](./components/dead/findings/README.md) - 1 components, default `investigate` +- [Graph](./components/dead/graph/README.md) - 3 components, default `investigate` +- [Home](./components/dead/home/README.md) - 1 components, default `investigate` +- [Lineage](./components/dead/lineage/README.md) - 14 components, default `investigate` +- [Operations](./components/dead/operations/README.md) - 1 components, default `investigate` +- [Overlays](./components/dead/overlays/README.md) - 2 components, default `investigate` +- [Platform](./components/dead/platform/README.md) - 1 components, default `investigate` +- [Platform Ops Legacy](./components/dead/platform-ops/README.md) - 5 components, default `merge` +- [Policy](./components/dead/policy/README.md) - 3 components, default `investigate` +- [Policy Studio Legacy](./components/dead/policy-studio/README.md) - 11 components, default `merge` +- [Promotions](./components/dead/promotions/README.md) - 2 components, default `investigate` +- [Proof Chain](./components/dead/proof-chain/README.md) - 1 components, default `investigate` +- [Proof Studio](./components/dead/proof-studio/README.md) - 1 components, default `investigate` +- [Qa](./components/dead/qa/README.md) - 1 components, default `investigate` +- [Reachability Witnessing](./components/dead/reachability/README.md) - 2 components, default `merge` +- [Registry Admin](./components/dead/registry-admin/README.md) - 4 components, default `investigate` +- [Release Control Legacy](./components/dead/release-control/README.md) - 9 components, default `archive` +- [Release Orchestrator](./components/dead/release-orchestrator/README.md) - 12 components, default `investigate` +- [Releases](./components/dead/releases/README.md) - 2 components, default `investigate` +- [Scores](./components/dead/scores/README.md) - 1 components, default `investigate` +- [Security](./components/dead/security/README.md) - 13 components, default `investigate` +- [Security Risk](./components/dead/security-risk/README.md) - 1 components, default `investigate` +- [Settings](./components/dead/settings/README.md) - 2 components, default `investigate` +- [Slo Monitoring](./components/dead/slo-monitoring/README.md) - 4 components, default `investigate` +- [Snapshot](./components/dead/snapshot/README.md) - 1 components, default `investigate` +- [Timeline](./components/dead/timeline/README.md) - 1 components, default `investigate` +- [Triage Workbench](./components/dead/triage/README.md) - 8 components, default `merge` +- [Triage Inbox](./components/dead/triage-inbox/README.md) - 1 components, default `investigate` +- [Ui](./components/dead/ui/README.md) - 8 components, default `investigate` +- [Unknowns](./components/dead/unknowns/README.md) - 1 components, default `investigate` +- [VEX Studio](./components/dead/vex-studio/README.md) - 1 components, default `merge` +- [Vuln Explorer](./components/dead/vuln-explorer/README.md) - 7 components, default `investigate` +- [Vulnerabilities](./components/dead/vulnerabilities/README.md) - 2 components, default `investigate` +- [Watchlist](./components/dead/watchlist/README.md) - 1 components, default `wire-in` +- [Workflow Visualization Prototype](./components/dead/workflow-visualization/README.md) - 3 components, default `investigate` +- [Workspaces](./components/dead/workspaces/README.md) - 1 components, default `investigate` + +### Weak Route +- [Ai Runs](./components/weak-route/ai-runs/README.md) - 2 components, default `preserve` +- [Aoc Compliance](./components/weak-route/aoc-compliance/README.md) - 5 components, default `preserve` +- [Audit Log](./components/weak-route/audit-log/README.md) - 10 components, default `preserve` +- [Bundles](./components/weak-route/bundles/README.md) - 2 components, default `preserve` +- [Console](./components/weak-route/console/README.md) - 1 components, default `preserve` +- [Console Admin](./components/weak-route/console-admin/README.md) - 6 components, default `preserve` +- [Deadletter](./components/weak-route/deadletter/README.md) - 3 components, default `preserve` +- [Evidence Export](./components/weak-route/evidence-export/README.md) - 2 components, default `preserve` +- [Evidence Pack](./components/weak-route/evidence-pack/README.md) - 1 components, default `preserve` +- [Exceptions](./components/weak-route/exceptions/README.md) - 1 components, default `preserve` +- [Graph](./components/weak-route/graph/README.md) - 1 components, default `preserve` +- [Integration Hub](./components/weak-route/integration-hub/README.md) - 1 components, default `preserve` +- [Issuer Trust](./components/weak-route/issuer-trust/README.md) - 3 components, default `preserve` +- [Jobengine](./components/weak-route/jobengine/README.md) - 4 components, default `preserve` +- [Mission Control](./components/weak-route/mission-control/README.md) - 2 components, default `preserve` +- [Notify](./components/weak-route/notify/README.md) - 1 components, default `preserve` +- [Offline Kit](./components/weak-route/offline-kit/README.md) - 4 components, default `preserve` +- [Pack Registry](./components/weak-route/pack-registry/README.md) - 1 components, default `preserve` +- [Platform](./components/weak-route/platform/README.md) - 7 components, default `preserve` +- [Platform Health](./components/weak-route/platform-health/README.md) - 3 components, default `preserve` +- [Platform Ops Legacy](./components/weak-route/platform-ops/README.md) - 8 components, default `merge` +- [Policy Governance](./components/weak-route/policy-governance/README.md) - 14 components, default `preserve` +- [Policy Studio Legacy](./components/weak-route/policy-studio/README.md) - 1 components, default `merge` +- [Quota Dashboard](./components/weak-route/quota-dashboard/README.md) - 6 components, default `preserve` +- [Release Orchestrator](./components/weak-route/release-orchestrator/README.md) - 1 components, default `preserve` +- [Releases](./components/weak-route/releases/README.md) - 2 components, default `preserve` +- [Sbom Sources](./components/weak-route/sbom-sources/README.md) - 1 components, default `preserve` +- [Scanner Ops](./components/weak-route/scanner-ops/README.md) - 6 components, default `preserve` +- [Scheduler Ops](./components/weak-route/scheduler-ops/README.md) - 2 components, default `preserve` +- [Security](./components/weak-route/security/README.md) - 1 components, default `preserve` +- [Security Risk](./components/weak-route/security-risk/README.md) - 5 components, default `preserve` +- [Settings](./components/weak-route/settings/README.md) - 8 components, default `preserve` +- [Signals](./components/weak-route/signals/README.md) - 1 components, default `preserve` +- [Topology](./components/weak-route/topology/README.md) - 8 components, default `preserve` +- [Triage Workbench](./components/weak-route/triage/README.md) - 1 components, default `merge` +- [Trivy Db Settings](./components/weak-route/trivy-db-settings/README.md) - 1 components, default `preserve` +- [Trust Admin](./components/weak-route/trust-admin/README.md) - 6 components, default `preserve` +- [Unknowns Tracking](./components/weak-route/unknowns-tracking/README.md) - 4 components, default `preserve` + +## Notes +- This is a first-pass map. The weak-route bucket especially needs follow-up review against relative tab navigation and Stella Ops product docs. +- Per-component dossiers are intentionally stable so later iterations can deepen the judgment rather than recreate the inventory. diff --git a/docs/modules/ui/component-preservation-map/SUMMARY_TREE.md b/docs/modules/ui/component-preservation-map/SUMMARY_TREE.md new file mode 100644 index 000000000..63bd435b0 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/SUMMARY_TREE.md @@ -0,0 +1,544 @@ +# Summary Tree + +Generated on 2026-03-07. This is the branch-level view of candidate unused or weakly surfaced UI families. + +## Dead + +- Admin Notifications + what: Admin Notifications components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Advisory Ai + what: Advisory Ai components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 5 components +- Aoc + what: Aoc components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Approvals + what: Approvals components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 3 components +- Binary Index + what: Binary Index components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Change Trace + what: Change Trace components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Compare + what: Compare components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 2 components +- Components + what: Components components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 10 components +- Cvss + what: Cvss components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Dashboard + what: Dashboard components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 2 components +- Deployments + what: Deployments components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Doctor + what: Doctor components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Environments + what: Environments components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Evidence + what: Evidence components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 3 components +- Evidence Thread + what: Evidence Thread components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 2 components +- Findings + what: Findings components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Graph + what: Graph components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 3 components +- Home + what: Home components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Lineage + what: Lineage components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 14 components +- Operations + what: Operations components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Overlays + what: Overlays components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 2 components +- Platform + what: Platform components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Platform Ops Legacy + what: Older operations console pages from before the current `/ops` shell consolidation. + keep: Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + action: `merge` + why: Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind. + count: 5 components +- Policy + what: Policy components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 3 components +- Policy Studio Legacy + what: Legacy all-in-one policy authoring, approvals, dashboard, and simulation surfaces from the older IA. + keep: Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + action: `merge` + why: The current route tree moved policy work into newer governance and simulation surfaces, leaving the old `/policy-studio` family unmounted. + count: 11 components +- Promotions + what: Promotions components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 2 components +- Proof Chain + what: Proof Chain components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Proof Studio + what: Proof Studio components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Qa + what: Qa components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Reachability Witnessing + what: Reachability proof, witness, and proof-of-exploit supporting surfaces. + keep: Keep witness capture, proof overlays, and explainability flows that can reinforce policy and evidence decisions. + action: `merge` + why: The supporting pages and drawers are not mounted even though reachability remains a core Stella Ops differentiator. + count: 2 components +- Registry Admin + what: Registry Admin components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 4 components +- Release Control Legacy + what: Pre-rewire release-control setup, governance, and landing pages retained after the route migration. + keep: Preserve only reusable copy, sequencing, or setup checklists that still improve the newer release and topology flows. + action: `archive` + why: The canonical IA now redirects old `release-control/*` concepts into `/releases`, `/ops`, and `/setup`, so the original surfaces no longer anchor the product. + count: 9 components +- Release Orchestrator + what: Release Orchestrator components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 12 components +- Releases + what: Releases components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 2 components +- Scores + what: Scores components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Security + what: Security components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 13 components +- Security Risk + what: Security Risk components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Settings + what: Settings components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 2 components +- Slo Monitoring + what: Slo Monitoring components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 4 components +- Snapshot + what: Snapshot components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Timeline + what: Timeline components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Triage Workbench + what: Triage experiments, workbenches, and audit-bundle side surfaces around artifact analysis. + keep: Keep any explainability, quiet-lane, or audit-bundle interactions that meaningfully shorten operator triage loops. + action: `merge` + why: Several triage surfaces read as design experiments that were never folded cleanly into the main artifact workspace. + count: 8 components +- Triage Inbox + what: Triage Inbox components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- Ui + what: Ui components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 8 components +- Unknowns + what: Unknowns components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components +- VEX Studio + what: Conflict-resolution and authoring surfaces around VEX decisions. + keep: Keep conflict resolution workflows, rationale capture, and consensus tooling that could strengthen VEX Hub. + action: `merge` + why: The standalone studio is not mounted, but related VEX concepts and data structures still appear to matter elsewhere. + count: 1 components +- Vuln Explorer + what: Vuln Explorer components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 7 components +- Vulnerabilities + what: Vulnerabilities components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 2 components +- Watchlist + what: Operator watchlist and monitoring surfaces backed by a real client/provider but not wired into navigation. + keep: Keep the operational watchlist concept, status views, and monitoring workflows; this looks closer to productizable than many other dead branches. + action: `wire-in` + why: The feature appears partially implemented but never surfaced in the current route tree or menu. + count: 1 components +- Workflow Visualization Prototype + what: A prototype workflow explorer with time-travel and step drill-down concepts. + keep: Keep the timeline, step-diff, and replay ideas if they can strengthen evidence or release run introspection. + action: `investigate` + why: The route file exists, but nothing mounts the workflow visualization branch in the active shell. + count: 3 components +- Workspaces + what: Workspaces components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `investigate` + why: No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + count: 1 components + +## Weak Route + +- Ai Runs + what: Ai Runs components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 2 components +- Aoc Compliance + what: Aoc Compliance components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 5 components +- Audit Log + what: Audit Log components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 10 components +- Bundles + what: Bundles components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 2 components +- Console + what: Console components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 1 components +- Console Admin + what: Console Admin components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 6 components +- Deadletter + what: Deadletter components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 3 components +- Evidence Export + what: Evidence Export components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 2 components +- Evidence Pack + what: Evidence Pack components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 1 components +- Exceptions + what: Exceptions components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 1 components +- Graph + what: Graph components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 1 components +- Integration Hub + what: Integration Hub components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 1 components +- Issuer Trust + what: Issuer Trust components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 3 components +- Jobengine + what: Jobengine components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 4 components +- Mission Control + what: Mission Control components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 2 components +- Notify + what: Notify components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 1 components +- Offline Kit + what: Offline Kit components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 4 components +- Pack Registry + what: Pack Registry components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 1 components +- Platform + what: Platform components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 7 components +- Platform Health + what: Platform Health components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 3 components +- Platform Ops Legacy + what: Older operations console pages from before the current `/ops` shell consolidation. + keep: Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + action: `merge` + why: Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind. + count: 8 components +- Policy Governance + what: Current policy governance admin subtree that looks real but still needs surface verification. + keep: Preserve the full governance branch; the main question is wiring quality, not product value. + action: `preserve` + why: These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing. + count: 14 components +- Policy Studio Legacy + what: Legacy all-in-one policy authoring, approvals, dashboard, and simulation surfaces from the older IA. + keep: Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + action: `merge` + why: The current route tree moved policy work into newer governance and simulation surfaces, leaving the old `/policy-studio` family unmounted. + count: 1 components +- Quota Dashboard + what: Quota Dashboard components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 6 components +- Release Orchestrator + what: Release Orchestrator components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 1 components +- Releases + what: Releases components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 2 components +- Sbom Sources + what: Sbom Sources components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 1 components +- Scanner Ops + what: Scanner Ops components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 6 components +- Scheduler Ops + what: Scheduler Ops components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 2 components +- Security + what: Security components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 1 components +- Security Risk + what: Security Risk components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 5 components +- Settings + what: Settings components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 8 components +- Signals + what: Signals components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 1 components +- Topology + what: Topology components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 8 components +- Triage Workbench + what: Triage experiments, workbenches, and audit-bundle side surfaces around artifact analysis. + keep: Keep any explainability, quiet-lane, or audit-bundle interactions that meaningfully shorten operator triage loops. + action: `merge` + why: Several triage surfaces read as design experiments that were never folded cleanly into the main artifact workspace. + count: 1 components +- Trivy Db Settings + what: Trivy Db Settings components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 1 components +- Trust Admin + what: Trust Admin components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 6 components +- Unknowns Tracking + what: Unknowns Tracking components grouped from the static unused-component scan. + keep: Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + action: `preserve` + why: The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + count: 4 components + diff --git a/docs/modules/ui/component-preservation-map/_tools/generate-map.cjs b/docs/modules/ui/component-preservation-map/_tools/generate-map.cjs new file mode 100644 index 000000000..53b668bc2 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/_tools/generate-map.cjs @@ -0,0 +1,1038 @@ +const fs = require('fs'); +const path = require('path'); +const { createRequire } = require('module'); + +const repoRoot = path.resolve(__dirname, '..', '..', '..', '..', '..'); +const webRoot = path.join(repoRoot, 'src', 'Web', 'StellaOps.Web'); +const appRoot = path.join(webRoot, 'src', 'app'); +const outRoot = path.join(repoRoot, 'docs', 'modules', 'ui', 'component-preservation-map'); +const requireFromWeb = createRequire(path.join(webRoot, 'package.json')); +const ts = requireFromWeb('typescript'); + +const MENU_FILES = [ + path.join(appRoot, 'layout', 'app-sidebar', 'app-sidebar.component.ts'), + path.join(appRoot, 'core', 'navigation', 'navigation.config.ts'), + path.join(appRoot, 'layout', 'app-topbar', 'app-topbar.component.ts'), + path.join(appRoot, 'shared', 'components', 'user-menu', 'user-menu.component.ts'), +].map(path.normalize); + +const GENERATION_DATE = new Date().toISOString().slice(0, 10); + +function walk(dir) { + const results = []; + for (const entry of fs.readdirSync(dir, { withFileTypes: true })) { + if (entry.name === 'node_modules' || entry.name === 'dist' || entry.name === '.angular') { + continue; + } + + const fullPath = path.join(dir, entry.name); + if (entry.isDirectory()) { + results.push(...walk(fullPath)); + continue; + } + + results.push(fullPath); + } + return results; +} + +function read(filePath) { + return fs.readFileSync(filePath, 'utf8'); +} + +function ensureDir(dirPath) { + fs.mkdirSync(dirPath, { recursive: true }); +} + +function write(filePath, content) { + ensureDir(path.dirname(filePath)); + fs.writeFileSync(filePath, content.replace(/\n/g, '\r\n')); +} + +function repoRel(filePath) { + return path.relative(repoRoot, filePath).replace(/\\/g, '/'); +} + +function appRel(filePath) { + return path.relative(appRoot, filePath).replace(/\\/g, '/'); +} + +function normalizeRoute(routePath) { + if (!routePath || routePath === '/') { + return '/'; + } + + let value = routePath.replace(/\\/g, '/').trim(); + if (!value.startsWith('/')) { + value = `/${value}`; + } + + value = value.replace(/\/+/g, '/'); + if (value.length > 1) { + value = value.replace(/\/$/, ''); + } + return value; +} + +function joinRoute(prefix, segment) { + const cleanPrefix = normalizeRoute(prefix || '/'); + if (!segment || segment === '') { + return cleanPrefix; + } + if (segment.startsWith('/')) { + return normalizeRoute(segment); + } + if (cleanPrefix === '/') { + return normalizeRoute(segment); + } + return normalizeRoute(`${cleanPrefix}/${segment}`); +} + +function sortUnique(values) { + return Array.from(new Set(values)).sort((left, right) => left.localeCompare(right)); +} + +function titleCase(value) { + return value + .replace(/([a-z0-9])([A-Z])/g, '$1 $2') + .replace(/[-_]/g, ' ') + .replace(/\s+/g, ' ') + .trim() + .replace(/\b\w/g, (match) => match.toUpperCase()); +} + +function humanizeComponentName(className) { + return titleCase(className.replace(/Component$/, '')); +} + +function slugify(value) { + return value + .toLowerCase() + .replace(/[^a-z0-9]+/g, '-') + .replace(/^-+|-+$/g, ''); +} + +function canHaveDecorators(node) { + return typeof ts.canHaveDecorators === 'function' && ts.canHaveDecorators(node); +} + +function getDecorators(node) { + if (!canHaveDecorators(node) || typeof ts.getDecorators !== 'function') { + return []; + } + return ts.getDecorators(node) ?? []; +} + +function stringLiteralValue(node) { + if (!node) { + return null; + } + if (ts.isStringLiteral(node) || ts.isNoSubstitutionTemplateLiteral(node)) { + return node.text; + } + return null; +} + +function propertyNameText(nameNode) { + if (!nameNode) { + return null; + } + if (ts.isIdentifier(nameNode) || ts.isStringLiteral(nameNode) || ts.isNoSubstitutionTemplateLiteral(nameNode)) { + return nameNode.text; + } + return null; +} + +function getObjectProperty(objectLiteral, name) { + for (const property of objectLiteral.properties) { + if (!ts.isPropertyAssignment(property)) { + continue; + } + if (propertyNameText(property.name) === name) { + return property.initializer; + } + } + return null; +} + +function getStringProperty(objectLiteral, name) { + return stringLiteralValue(getObjectProperty(objectLiteral, name)); +} + +function getIdentifierProperty(objectLiteral, name) { + const initializer = getObjectProperty(objectLiteral, name); + return initializer && ts.isIdentifier(initializer) ? initializer.text : null; +} + +function getArrayProperty(objectLiteral, name) { + const initializer = getObjectProperty(objectLiteral, name); + return initializer && ts.isArrayLiteralExpression(initializer) ? initializer : null; +} + +function isRouteFile(filePath) { + const normalized = filePath.replace(/\\/g, '/'); + return normalized.endsWith('.routes.ts') || normalized.endsWith('/app.routes.ts'); +} + +function isSpecOrStory(filePath) { + const normalized = filePath.replace(/\\/g, '/'); + return normalized.includes('.spec.') || normalized.includes('.stories.'); +} + +function extractAbsoluteRoutes(text) { + const routes = []; + const pattern = /['"`](\/[A-Za-z0-9_:@?&=./-]*)['"`]/g; + let match = pattern.exec(text); + while (match) { + routes.push(normalizeRoute(match[1])); + match = pattern.exec(text); + } + return sortUnique(routes); +} + +function deriveFamily(relativePath) { + const parts = relativePath.split('/'); + if (parts[0] === 'features') { + return parts[1] ?? 'features'; + } + if (parts[0] === 'shared') { + return parts[1] ?? 'shared'; + } + if (parts[0] === 'layout') { + return parts[1] ?? 'layout'; + } + if (parts[0] === 'routes') { + return parts[1] ?? 'routes'; + } + return parts[0]; +} + +function componentRoleHint(component) { + const name = component.className.toLowerCase(); + const folders = component.relativePath.toLowerCase(); + + if (name.includes('dashboard') || name.includes('overview') || name.includes('home')) { + return 'landing or overview surface'; + } + if (name.includes('editor') || name.includes('builder') || name.includes('composer')) { + return 'authoring or editing surface'; + } + if (name.includes('simulate') || name.includes('simulation') || name.includes('shadow')) { + return 'simulation and what-if analysis surface'; + } + if (name.includes('approval') || name.includes('review')) { + return 'approval and review surface'; + } + if (name.includes('wizard') || name.includes('setup')) { + return 'setup or guided workflow surface'; + } + if (name.includes('audit') || folders.includes('/audit')) { + return 'audit and evidence surface'; + } + if (name.includes('drawer') || name.includes('panel') || name.includes('detail')) { + return 'detail panel or supporting drill-down surface'; + } + if (name.includes('watch') || name.includes('alert') || name.includes('notify')) { + return 'monitoring and alerting surface'; + } + if (name.includes('visual') || name.includes('graph') || name.includes('timeline')) { + return 'visualization or exploration surface'; + } + return 'dedicated feature surface'; +} + +function describeApparentPurpose(component) { + const pathBits = component.relativePath + .replace(/^features\//, '') + .replace(/^shared\//, '') + .replace(/^layout\//, '') + .replace(/\/[^/]+\.component\.ts$/, '') + .split('/') + .filter(Boolean) + .map(titleCase); + + const area = pathBits.length > 0 ? pathBits.join(' / ') : titleCase(component.family); + return `${humanizeComponentName(component.className)} appears to be a ${componentRoleHint(component)} in the ${area} area.`; +} + +function pathToDocLink(filePath) { + return repoRel(filePath); +} + +function defaultBranchTitle(family) { + return titleCase(family); +} + +const BRANCH_RULES = [ + { + key: 'policy-studio', + test: (component) => component.relativePath.startsWith('features/policy-studio/'), + title: 'Policy Studio Legacy', + branchWhat: 'Legacy all-in-one policy authoring, approvals, dashboard, and simulation surfaces from the older IA.', + recommendation: 'merge', + preservationValue: 'high', + whyDropped: 'The current route tree moved policy work into newer governance and simulation surfaces, leaving the old `/policy-studio` family unmounted.', + preserve: 'Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces.', + likelyDestination: '/admin/policy/governance and /admin/policy/simulation', + relatedDocs: [ + 'docs/contracts/policy-studio.md', + 'docs/modules/ui/v2-rewire/source-of-truth.md', + ], + }, + { + key: 'release-control', + test: (component) => component.relativePath.startsWith('features/release-control/'), + title: 'Release Control Legacy', + branchWhat: 'Pre-rewire release-control setup, governance, and landing pages retained after the route migration.', + recommendation: 'archive', + preservationValue: 'low', + whyDropped: 'The canonical IA now redirects old `release-control/*` concepts into `/releases`, `/ops`, and `/setup`, so the original surfaces no longer anchor the product.', + preserve: 'Preserve only reusable copy, sequencing, or setup checklists that still improve the newer release and topology flows.', + likelyDestination: '/releases, /ops/platform-setup, and /setup/topology', + relatedDocs: [ + 'docs/modules/ui/v2-rewire/S00_route_deprecation_map.md', + 'docs/modules/ui/v2-rewire/source-of-truth.md', + ], + }, + { + key: 'platform-ops', + test: (component) => component.relativePath.startsWith('features/platform-ops/'), + title: 'Platform Ops Legacy', + branchWhat: 'Older operations console pages from before the current `/ops` shell consolidation.', + recommendation: 'merge', + preservationValue: 'medium', + whyDropped: 'Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind.', + preserve: 'Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages.', + likelyDestination: '/ops and /ops/platform-setup', + relatedDocs: [ + 'docs/modules/platform/architecture-overview.md', + 'docs/modules/ui/v2-rewire/source-of-truth.md', + ], + }, + { + key: 'workflow-visualization', + test: (component) => component.relativePath.startsWith('features/workflow-visualization/'), + title: 'Workflow Visualization Prototype', + branchWhat: 'A prototype workflow explorer with time-travel and step drill-down concepts.', + recommendation: 'investigate', + preservationValue: 'medium', + whyDropped: 'The route file exists, but nothing mounts the workflow visualization branch in the active shell.', + preserve: 'Keep the timeline, step-diff, and replay ideas if they can strengthen evidence or release run introspection.', + likelyDestination: '/evidence or /releases/runs', + relatedDocs: [ + 'docs/modules/ui/architecture.md', + 'docs/modules/platform/architecture-overview.md', + ], + }, + { + key: 'watchlist', + test: (component) => component.relativePath.startsWith('features/watchlist/'), + title: 'Watchlist', + branchWhat: 'Operator watchlist and monitoring surfaces backed by a real client/provider but not wired into navigation.', + recommendation: 'wire-in', + preservationValue: 'high', + whyDropped: 'The feature appears partially implemented but never surfaced in the current route tree or menu.', + preserve: 'Keep the operational watchlist concept, status views, and monitoring workflows; this looks closer to productizable than many other dead branches.', + likelyDestination: '/mission-control or /ops', + relatedDocs: [ + 'docs/operations/watchlist-monitoring-runbook.md', + 'docs/modules/platform/architecture-overview.md', + ], + }, + { + key: 'reachability', + test: (component) => component.relativePath.startsWith('features/reachability/'), + title: 'Reachability Witnessing', + branchWhat: 'Reachability proof, witness, and proof-of-exploit supporting surfaces.', + recommendation: 'merge', + preservationValue: 'high', + whyDropped: 'The supporting pages and drawers are not mounted even though reachability remains a core Stella Ops differentiator.', + preserve: 'Keep witness capture, proof overlays, and explainability flows that can reinforce policy and evidence decisions.', + likelyDestination: '/security/reachability or /evidence', + relatedDocs: [ + 'docs/modules/platform/architecture-overview.md', + 'docs/modules/ui/architecture.md', + ], + }, + { + key: 'vex-studio', + test: (component) => component.relativePath.startsWith('features/vex-studio/'), + title: 'VEX Studio', + branchWhat: 'Conflict-resolution and authoring surfaces around VEX decisions.', + recommendation: 'merge', + preservationValue: 'high', + whyDropped: 'The standalone studio is not mounted, but related VEX concepts and data structures still appear to matter elsewhere.', + preserve: 'Keep conflict resolution workflows, rationale capture, and consensus tooling that could strengthen VEX Hub.', + likelyDestination: '/admin/vex-hub', + relatedDocs: [ + 'docs/modules/platform/architecture-overview.md', + 'docs/modules/ui/architecture.md', + ], + }, + { + key: 'triage', + test: (component) => component.relativePath.startsWith('features/triage/'), + title: 'Triage Workbench', + branchWhat: 'Triage experiments, workbenches, and audit-bundle side surfaces around artifact analysis.', + recommendation: 'merge', + preservationValue: 'medium', + whyDropped: 'Several triage surfaces read as design experiments that were never folded cleanly into the main artifact workspace.', + preserve: 'Keep any explainability, quiet-lane, or audit-bundle interactions that meaningfully shorten operator triage loops.', + likelyDestination: '/triage/artifacts or /evidence', + relatedDocs: [ + 'docs/modules/platform/architecture-overview.md', + 'docs/modules/ui/architecture.md', + ], + }, + { + key: 'policy-governance', + test: (component) => component.relativePath.startsWith('features/policy-governance/'), + title: 'Policy Governance', + branchWhat: 'Current policy governance admin subtree that looks real but still needs surface verification.', + recommendation: 'preserve', + preservationValue: 'high', + whyDropped: 'These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing.', + preserve: 'Preserve the full governance branch; the main question is wiring quality, not product value.', + likelyDestination: '/admin/policy/governance', + relatedDocs: [ + 'docs/modules/ui/v2-rewire/source-of-truth.md', + 'docs/contracts/policy-studio.md', + ], + }, + { + key: 'policy-simulation', + test: (component) => component.relativePath.startsWith('features/policy-simulation/'), + title: 'Policy Simulation', + branchWhat: 'Current policy simulation admin subtree that likely remains product-relevant.', + recommendation: 'preserve', + preservationValue: 'high', + whyDropped: 'Static scans can miss child-tab flows, so weak surfacing here does not imply abandonment.', + preserve: 'Preserve shadow mode, scenario comparison, and simulation drill-down surfaces; focus on navigation evidence before cutting anything.', + likelyDestination: '/admin/policy/simulation', + relatedDocs: [ + 'docs/modules/ui/v2-rewire/source-of-truth.md', + 'docs/contracts/policy-studio.md', + ], + }, +]; + +function resolveBranchRule(component) { + return BRANCH_RULES.find((rule) => rule.test(component)) ?? { + key: component.family, + title: defaultBranchTitle(component.family), + branchWhat: `${defaultBranchTitle(component.family)} components grouped from the static unused-component scan.`, + recommendation: component.classification === 'dead' ? 'investigate' : 'preserve', + preservationValue: component.classification === 'dead' ? 'medium' : 'high', + whyDropped: component.classification === 'dead' + ? 'No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced.' + : 'The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it.', + preserve: 'Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts.', + likelyDestination: 'Needs branch-level review against current IA', + relatedDocs: [ + 'docs/modules/ui/README.md', + 'docs/modules/ui/architecture.md', + ], + }; +} + +function scanComponents() { + const componentFiles = walk(appRoot).filter((filePath) => filePath.endsWith('.component.ts')); + const components = []; + + for (const filePath of componentFiles) { + const sourceText = read(filePath); + const sourceFile = ts.createSourceFile(filePath, sourceText, ts.ScriptTarget.Latest, true); + + for (const statement of sourceFile.statements) { + if (!ts.isClassDeclaration(statement) || !statement.name) { + continue; + } + + const decorators = getDecorators(statement); + const componentDecorator = decorators.find((decorator) => { + const expression = decorator.expression; + return ts.isCallExpression(expression) && expression.expression.getText(sourceFile) === 'Component'; + }); + + if (!componentDecorator) { + continue; + } + + const expression = componentDecorator.expression; + const config = ts.isCallExpression(expression) ? expression.arguments[0] : null; + const selector = config && ts.isObjectLiteralExpression(config) + ? getStringProperty(config, 'selector') + : null; + + const relativePath = appRel(filePath); + components.push({ + className: statement.name.text, + selector, + filePath, + relativePath, + family: deriveFamily(relativePath), + }); + } + } + + return components.sort((left, right) => left.relativePath.localeCompare(right.relativePath)); +} + +function isRouteArray(node) { + if (!ts.isArrayLiteralExpression(node)) { + return false; + } + return node.elements.some((element) => { + return ts.isObjectLiteralExpression(element) && getObjectProperty(element, 'path'); + }); +} + +function getLoadTarget(initializer, sourceFile) { + if (!initializer) { + return null; + } + + const text = initializer.getText(sourceFile); + const importMatch = text.match(/import\(['"`](.+?)['"`]\)/); + const exportMatch = text.match(/=>\s*[A-Za-z0-9_]+\.(\w+)/); + + if (!importMatch || !exportMatch) { + return null; + } + + return { + importPath: importMatch[1], + exportName: exportMatch[1], + }; +} + +function resolveTsModule(fromFile, importPath) { + const absoluteBase = path.resolve(path.dirname(fromFile), importPath); + const candidates = [ + `${absoluteBase}.ts`, + path.join(absoluteBase, 'index.ts'), + ]; + + return candidates.find((candidate) => fs.existsSync(candidate)) ?? null; +} + +function loadRouteFile(filePath, cache) { + if (cache.has(filePath)) { + return cache.get(filePath); + } + + const sourceText = read(filePath); + const sourceFile = ts.createSourceFile(filePath, sourceText, ts.ScriptTarget.Latest, true); + const arrays = new Map(); + + function visit(node) { + if (ts.isVariableDeclaration(node) && ts.isIdentifier(node.name) && node.initializer && isRouteArray(node.initializer)) { + arrays.set(node.name.text, node.initializer); + } + ts.forEachChild(node, visit); + } + + visit(sourceFile); + + const parsed = { sourceFile, arrays }; + cache.set(filePath, parsed); + return parsed; +} + +function collectRoutesFromArray(filePath, exportName, prefix, cache, visited, routeIndex) { + const visitKey = `${filePath}::${exportName}::${prefix}`; + if (visited.has(visitKey)) { + return; + } + visited.add(visitKey); + + const parsed = loadRouteFile(filePath, cache); + const arrayNode = parsed.arrays.get(exportName); + if (!arrayNode) { + return; + } + + collectRouteArray(filePath, parsed.sourceFile, arrayNode, prefix, cache, visited, routeIndex); +} + +function collectRouteArray(filePath, sourceFile, arrayNode, prefix, cache, visited, routeIndex) { + for (const element of arrayNode.elements) { + if (!ts.isObjectLiteralExpression(element)) { + continue; + } + collectRouteObject(filePath, sourceFile, element, prefix, cache, visited, routeIndex); + } +} + +function collectRouteObject(filePath, sourceFile, objectLiteral, prefix, cache, visited, routeIndex) { + const routePath = getStringProperty(objectLiteral, 'path') ?? ''; + const fullPath = joinRoute(prefix, routePath); + const componentName = + getIdentifierProperty(objectLiteral, 'component') || + (function () { + const loadComponent = getObjectProperty(objectLiteral, 'loadComponent'); + if (!loadComponent) { + return null; + } + const text = loadComponent.getText(sourceFile); + const match = text.match(/=>\s*[A-Za-z0-9_]+\.(\w+)/); + return match ? match[1] : null; + })(); + + if (componentName) { + const current = routeIndex.get(componentName) ?? []; + current.push({ + path: fullPath, + routeFile: repoRel(filePath), + }); + routeIndex.set(componentName, current); + } + + const children = getArrayProperty(objectLiteral, 'children'); + if (children) { + collectRouteArray(filePath, sourceFile, children, fullPath, cache, visited, routeIndex); + } + + const loadChildren = getLoadTarget(getObjectProperty(objectLiteral, 'loadChildren'), sourceFile); + if (!loadChildren) { + return; + } + + const targetFile = resolveTsModule(filePath, loadChildren.importPath); + if (!targetFile) { + return; + } + + collectRoutesFromArray(targetFile, loadChildren.exportName, fullPath, cache, visited, routeIndex); +} + +function buildRouteIndex() { + const routeIndex = new Map(); + const cache = new Map(); + const visited = new Set(); + const rootRoutesFile = path.join(appRoot, 'app.routes.ts'); + collectRoutesFromArray(rootRoutesFile, 'routes', '/', cache, visited, routeIndex); + + for (const [componentName, entries] of routeIndex.entries()) { + const deduped = sortUnique(entries.map((entry) => `${entry.path}@@${entry.routeFile}`)).map((value) => { + const [routePath, routeFile] = value.split('@@'); + return { path: routePath, routeFile }; + }); + routeIndex.set(componentName, deduped); + } + + return routeIndex; +} + +function buildTextIndex() { + const files = walk(appRoot).filter((filePath) => /\.(ts|html|scss)$/.test(filePath)); + return files.map((filePath) => ({ + filePath, + relativePath: appRel(filePath), + text: read(filePath), + })); +} + +function findRuntimeRefs(component, textIndex) { + const refs = []; + for (const file of textIndex) { + if (file.filePath === component.filePath) { + continue; + } + if (isSpecOrStory(file.filePath) || isRouteFile(file.filePath)) { + continue; + } + + if (file.text.includes(component.className) || (component.selector && file.text.includes(component.selector))) { + refs.push(file.relativePath); + } + } + return sortUnique(refs); +} + +function buildRouteSurfaceIndex(textIndex) { + const menuRoutes = new Map(); + const actionRoutes = new Map(); + + for (const file of textIndex) { + if (isRouteFile(file.filePath) || isSpecOrStory(file.filePath)) { + continue; + } + + const target = MENU_FILES.includes(path.normalize(file.filePath)) ? menuRoutes : actionRoutes; + for (const routePath of extractAbsoluteRoutes(file.text)) { + const files = target.get(routePath) ?? []; + files.push(file.relativePath); + target.set(routePath, sortUnique(files)); + } + } + + return { menuRoutes, actionRoutes }; +} + +function classifyComponents(components, routeIndex, textIndex, routeSurfaceIndex) { + const candidates = []; + + for (const component of components) { + const routeEntries = routeIndex.get(component.className) ?? []; + const routePaths = sortUnique(routeEntries.map((entry) => entry.path)); + const routeFiles = sortUnique(routeEntries.map((entry) => entry.routeFile)); + const runtimeRefs = findRuntimeRefs(component, textIndex); + const menuSurfaceFiles = sortUnique( + routePaths.flatMap((routePath) => routeSurfaceIndex.menuRoutes.get(routePath) ?? []) + ); + const actionSurfaceFiles = sortUnique( + routePaths.flatMap((routePath) => routeSurfaceIndex.actionRoutes.get(routePath) ?? []) + ); + + let classification = null; + let confidence = null; + if (routePaths.length === 0 && runtimeRefs.length === 0) { + classification = 'dead'; + confidence = 'high'; + } else if (routePaths.length > 0 && runtimeRefs.length === 0 && menuSurfaceFiles.length === 0 && actionSurfaceFiles.length === 0) { + classification = 'weak-route'; + confidence = 'medium'; + } + + if (!classification) { + continue; + } + + const enriched = { + ...component, + routePaths, + routeFiles, + runtimeRefs, + menuSurfaceFiles, + actionSurfaceFiles, + classification, + confidence, + }; + const branch = resolveBranchRule(enriched); + candidates.push({ + ...enriched, + branchKey: branch.key, + branchTitle: branch.title, + branchWhat: branch.branchWhat, + recommendation: branch.recommendation, + preservationValue: branch.preservationValue, + whyDropped: branch.whyDropped, + preserve: branch.preserve, + likelyDestination: branch.likelyDestination, + relatedDocs: branch.relatedDocs, + }); + } + + return candidates.sort((left, right) => { + if (left.classification !== right.classification) { + return left.classification.localeCompare(right.classification); + } + if (left.branchKey !== right.branchKey) { + return left.branchKey.localeCompare(right.branchKey); + } + return left.relativePath.localeCompare(right.relativePath); + }); +} + +function toComponentDocPath(component) { + const parts = component.relativePath.split('/'); + const fileName = `${component.className}.md`; + const sourceDirParts = parts.slice(0, -1).map(slugify).filter(Boolean); + return path.join(outRoot, 'components', component.classification, ...sourceDirParts, fileName); +} + +function toBranchIndexPath(classification, family) { + return path.join(outRoot, 'components', classification, slugify(family), 'README.md'); +} + +function relativeLink(fromFile, toFile) { + return path.relative(path.dirname(fromFile), toFile).replace(/\\/g, '/'); +} + +function markdownList(values) { + if (!values || values.length === 0) { + return '- none'; + } + return values.map((value) => `- \`${value}\``).join('\n'); +} + +function nextPassQuestions(component) { + if (component.classification === 'weak-route') { + return [ + 'Confirm whether the route is reachable only through relative child-tab navigation.', + 'Check the corresponding product/docs promise before treating the page as dropped.', + 'Verify whether the route should be linked from the current shell or intentionally remain deep-linked only.', + ]; + } + + return [ + 'Check whether newer routed pages already absorbed this workflow under a different name.', + 'Review component templates and services for reusable UX or domain language worth salvaging.', + 'Validate the preservation call against current Stella Ops product docs before archival.', + ]; +} + +function renderComponentDoc(component, docPath) { + const routeBlock = component.routePaths.length > 0 ? markdownList(component.routePaths) : '- none'; + const routeFileBlock = component.routeFiles.length > 0 ? markdownList(component.routeFiles) : '- none'; + const menuBlock = component.menuSurfaceFiles.length > 0 ? markdownList(component.menuSurfaceFiles) : '- none'; + const actionBlock = component.actionSurfaceFiles.length > 0 ? markdownList(component.actionSurfaceFiles) : '- none'; + const runtimeBlock = component.runtimeRefs.length > 0 ? markdownList(component.runtimeRefs) : '- none'; + const questions = nextPassQuestions(component).map((item) => `- ${item}`).join('\n'); + const docsBlock = component.relatedDocs.length > 0 + ? component.relatedDocs.map((doc) => `- [${doc}](${relativeLink(docPath, path.join(repoRoot, doc))})`).join('\n') + : '- none'; + + return `# ${component.className} + +## Status Snapshot +- Classification: \`${component.classification}\` +- Confidence: \`${component.confidence}\` +- Recommendation: \`${component.recommendation}\` +- Preservation value: \`${component.preservationValue}\` +- Feature branch: \`${component.branchTitle}\` +- Source: \`${component.relativePath}\` +- Selector: \`${component.selector ?? 'n/a'}\` + +## What Is It? +${describeApparentPurpose(component)} + +## Why It Likely Fell Out Of The Product +${component.whyDropped} + +## What Is Worth Preserving +${component.preserve} + +## Likely Successor Or Merge Target +${component.likelyDestination} + +## Static Evidence +### Routed paths +${routeBlock} + +### Route files +${routeFileBlock} + +### Menu surfaces +${menuBlock} + +### Absolute page-action surfaces +${actionBlock} + +### Runtime references outside routes/tests +${runtimeBlock} + +## Related Docs +${docsBlock} + +## Next-Pass Questions +${questions} +`; +} + +function renderBranchIndex(classification, family, items) { + const branch = items[0]; + const grouped = items + .slice() + .sort((left, right) => left.relativePath.localeCompare(right.relativePath)) + .map((item) => { + const docPath = toComponentDocPath(item); + return `- [${item.className}](${relativeLink(toBranchIndexPath(classification, family), docPath)}) - \`${item.recommendation}\`, ${item.relativePath}`; + }) + .join('\n'); + + return `# ${branch.branchTitle} + +## Branch Summary +- Classification bucket: \`${classification}\` +- Components in branch: ${items.length} +- Default recommendation: \`${branch.recommendation}\` +- Preservation value: \`${branch.preservationValue}\` + +${branch.branchWhat} + +## Why This Branch Matters +${branch.preserve} + +## Likely Destination +${branch.likelyDestination} + +## Components +${grouped} +`; +} + +function renderSummaryTree(branches) { + const lines = [ + '# Summary Tree', + '', + `Generated on ${GENERATION_DATE}. This is the branch-level view of candidate unused or weakly surfaced UI families.`, + '', + ]; + + for (const [classification, branchMap] of branches.entries()) { + lines.push(`## ${titleCase(classification)}`); + lines.push(''); + for (const [, items] of branchMap.entries()) { + const branch = items[0]; + lines.push(`- ${branch.branchTitle}`); + lines.push(` what: ${branch.branchWhat}`); + lines.push(` keep: ${branch.preserve}`); + lines.push(` action: \`${branch.recommendation}\``); + lines.push(` why: ${branch.whyDropped}`); + lines.push(` count: ${items.length} components`); + } + lines.push(''); + } + + return `${lines.join('\n')}\n`; +} + +function renderRootReadme(candidates, branches) { + const totals = new Map(); + for (const candidate of candidates) { + totals.set(candidate.classification, (totals.get(candidate.classification) ?? 0) + 1); + } + + const lines = [ + '# UI Component Preservation Map', + '', + `Generated on ${GENERATION_DATE}. This map captures Angular components that currently look either high-confidence dead or routed-but-weakly-surfaced in the Stella Ops web console.`, + '', + '## How To Read This Map', + '- `dead`: no active route target and no runtime references outside tests/stories.', + '- `weak-route`: still routed, but the current static scan found no menu entry and no obvious absolute page-action path to the route.', + '- Recommendation labels are intentionally constrained: `archive`, `merge`, `preserve`, `wire-in`, `investigate`.', + '', + '## Counts', + `- Dead components: ${totals.get('dead') ?? 0}`, + `- Weak-route components: ${totals.get('weak-route') ?? 0}`, + `- Total candidates: ${candidates.length}`, + '', + '## Main Artifacts', + '- [Summary Tree](./SUMMARY_TREE.md)', + '- [Inventory JSON](./inventory.json)', + '', + '## Branch Index', + ]; + + for (const [classification, branchMap] of branches.entries()) { + lines.push(`### ${titleCase(classification)}`); + for (const [family, items] of branchMap.entries()) { + const branchFile = toBranchIndexPath(classification, family); + const branch = items[0]; + lines.push(`- [${branch.branchTitle}](./${repoRel(branchFile).replace(/^docs\/modules\/ui\/component-preservation-map\//, '')}) - ${items.length} components, default \`${branch.recommendation}\``); + } + lines.push(''); + } + + lines.push('## Notes'); + lines.push('- This is a first-pass map. The weak-route bucket especially needs follow-up review against relative tab navigation and Stella Ops product docs.'); + lines.push('- Per-component dossiers are intentionally stable so later iterations can deepen the judgment rather than recreate the inventory.'); + + return `${lines.join('\n')}\n`; +} + +function groupBranches(candidates) { + const branches = new Map(); + for (const candidate of candidates) { + const classificationMap = branches.get(candidate.classification) ?? new Map(); + const branchItems = classificationMap.get(candidate.branchKey) ?? []; + branchItems.push(candidate); + classificationMap.set(candidate.branchKey, branchItems); + branches.set(candidate.classification, classificationMap); + } + + for (const [, branchMap] of branches.entries()) { + for (const [, items] of branchMap.entries()) { + items.sort((left, right) => left.relativePath.localeCompare(right.relativePath)); + } + } + + return branches; +} + +function cleanOutput() { + if (!fs.existsSync(outRoot)) { + return; + } + + for (const entry of fs.readdirSync(outRoot, { withFileTypes: true })) { + if (entry.name === '_tools') { + continue; + } + + const target = path.join(outRoot, entry.name); + fs.rmSync(target, { recursive: true, force: true }); + } +} + +function main() { + cleanOutput(); + + const components = scanComponents(); + const routeIndex = buildRouteIndex(); + const textIndex = buildTextIndex(); + const routeSurfaceIndex = buildRouteSurfaceIndex(textIndex); + const candidates = classifyComponents(components, routeIndex, textIndex, routeSurfaceIndex); + const branches = groupBranches(candidates); + + for (const candidate of candidates) { + const docPath = toComponentDocPath(candidate); + write(docPath, renderComponentDoc(candidate, docPath)); + } + + for (const [classification, branchMap] of branches.entries()) { + for (const [family, items] of branchMap.entries()) { + write(toBranchIndexPath(classification, family), renderBranchIndex(classification, family, items)); + } + } + + write(path.join(outRoot, 'README.md'), renderRootReadme(candidates, branches)); + write(path.join(outRoot, 'SUMMARY_TREE.md'), renderSummaryTree(branches)); + write( + path.join(outRoot, 'inventory.json'), + `${JSON.stringify({ + generatedOn: GENERATION_DATE, + counts: { + dead: candidates.filter((item) => item.classification === 'dead').length, + weakRoute: candidates.filter((item) => item.classification === 'weak-route').length, + total: candidates.length, + }, + candidates: candidates.map((candidate) => ({ + className: candidate.className, + selector: candidate.selector, + classification: candidate.classification, + confidence: candidate.confidence, + recommendation: candidate.recommendation, + preservationValue: candidate.preservationValue, + family: candidate.family, + branchKey: candidate.branchKey, + branchTitle: candidate.branchTitle, + source: candidate.relativePath, + routePaths: candidate.routePaths, + routeFiles: candidate.routeFiles, + menuSurfaceFiles: candidate.menuSurfaceFiles, + actionSurfaceFiles: candidate.actionSurfaceFiles, + runtimeRefs: candidate.runtimeRefs, + relatedDocs: candidate.relatedDocs, + likelyDestination: candidate.likelyDestination, + })), + }, null, 2)}\n` + ); + + const counts = candidates.reduce((accumulator, candidate) => { + accumulator[candidate.classification] = (accumulator[candidate.classification] ?? 0) + 1; + return accumulator; + }, {}); + + console.log(JSON.stringify({ + generatedOn: GENERATION_DATE, + counts, + totalCandidates: candidates.length, + outputRoot: repoRel(outRoot), + }, null, 2)); +} + +main(); diff --git a/docs/modules/ui/component-preservation-map/components/dead/admin-notifications/README.md b/docs/modules/ui/component-preservation-map/components/dead/admin-notifications/README.md new file mode 100644 index 000000000..85fdd28bd --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/admin-notifications/README.md @@ -0,0 +1,18 @@ +# Admin Notifications + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Admin Notifications components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [AdminNotificationsComponent](../features/admin-notifications/AdminNotificationsComponent.md) - `investigate`, features/admin-notifications/admin-notifications.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/advisory-ai/README.md b/docs/modules/ui/component-preservation-map/components/dead/advisory-ai/README.md new file mode 100644 index 000000000..9bbe5d357 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/advisory-ai/README.md @@ -0,0 +1,22 @@ +# Advisory Ai + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 5 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Advisory Ai components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [AutofixWorkbenchComponent](../features/advisory-ai/AutofixWorkbenchComponent.md) - `investigate`, features/advisory-ai/autofix-workbench.component.ts +- [ChipShowcaseComponent](../features/advisory-ai/ChipShowcaseComponent.md) - `investigate`, features/advisory-ai/chip-showcase.component.ts +- [EvidenceDrilldownComponent](../features/advisory-ai/EvidenceDrilldownComponent.md) - `investigate`, features/advisory-ai/evidence-drilldown.component.ts +- [ExplainButtonComponent](../features/advisory-ai/ExplainButtonComponent.md) - `investigate`, features/advisory-ai/explain-button.component.ts +- [ExplanationPanelComponent](../features/advisory-ai/ExplanationPanelComponent.md) - `investigate`, features/advisory-ai/explanation-panel.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/aoc/README.md b/docs/modules/ui/component-preservation-map/components/dead/aoc/README.md new file mode 100644 index 000000000..6bfae5b46 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/aoc/README.md @@ -0,0 +1,18 @@ +# Aoc + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Aoc components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [AocVerificationWorkbenchComponent](../features/aoc/AocVerificationWorkbenchComponent.md) - `investigate`, features/aoc/aoc-verification-workbench.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/approvals/README.md b/docs/modules/ui/component-preservation-map/components/dead/approvals/README.md new file mode 100644 index 000000000..004f2e580 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/approvals/README.md @@ -0,0 +1,20 @@ +# Approvals + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 3 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Approvals components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [ApprovalDetailPageComponent](../features/approvals/ApprovalDetailPageComponent.md) - `investigate`, features/approvals/approval-detail-page.component.ts +- [ApprovalsInboxPageComponent](../features/approvals/ApprovalsInboxPageComponent.md) - `investigate`, features/approvals/approvals-inbox-page.component.ts +- [RequestExceptionModalComponent](../features/approvals/modals/RequestExceptionModalComponent.md) - `investigate`, features/approvals/modals/request-exception-modal.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/binary-index/README.md b/docs/modules/ui/component-preservation-map/components/dead/binary-index/README.md new file mode 100644 index 000000000..7ef33da53 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/binary-index/README.md @@ -0,0 +1,18 @@ +# Binary Index + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Binary Index components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [BinaryIndexOpsComponent](../features/binary-index/BinaryIndexOpsComponent.md) - `investigate`, features/binary-index/binary-index-ops.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/change-trace/README.md b/docs/modules/ui/component-preservation-map/components/dead/change-trace/README.md new file mode 100644 index 000000000..0a708f59d --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/change-trace/README.md @@ -0,0 +1,18 @@ +# Change Trace + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Change Trace components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [ChangeTraceViewerComponent](../features/change-trace/ChangeTraceViewerComponent.md) - `investigate`, features/change-trace/change-trace-viewer.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/compare/README.md b/docs/modules/ui/component-preservation-map/components/dead/compare/README.md new file mode 100644 index 000000000..7a79b4f00 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/compare/README.md @@ -0,0 +1,19 @@ +# Compare + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 2 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Compare components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [DegradedModeBannerComponent](../features/compare/components/degraded-mode-banner/DegradedModeBannerComponent.md) - `investigate`, features/compare/components/degraded-mode-banner/degraded-mode-banner.component.ts +- [GraphMiniMapComponent](../features/compare/components/graph-mini-map/GraphMiniMapComponent.md) - `investigate`, features/compare/components/graph-mini-map/graph-mini-map.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/components/README.md b/docs/modules/ui/component-preservation-map/components/dead/components/README.md new file mode 100644 index 000000000..0766704b0 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/components/README.md @@ -0,0 +1,27 @@ +# Components + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 10 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Components components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [ActionWaterfallComponent](../shared/components/action-waterfall/ActionWaterfallComponent.md) - `investigate`, shared/components/action-waterfall/action-waterfall.component.ts +- [EvidenceChecklistComponent](../shared/components/evidence-checklist/EvidenceChecklistComponent.md) - `investigate`, shared/components/evidence-checklist/evidence-checklist.component.ts +- [FixVerdictBadgeComponent](../shared/components/FixVerdictBadgeComponent.md) - `investigate`, shared/components/fix-verdict-badge.component.ts +- [GraphSplitViewComponent](../shared/components/graph-diff/GraphSplitViewComponent.md) - `investigate`, shared/components/graph-diff/graph-split-view.component.ts +- [OfflineBannerComponent](../shared/components/OfflineBannerComponent.md) - `investigate`, shared/components/offline-banner.component.ts +- [PlaceholderPageComponent](../shared/components/placeholder-page/PlaceholderPageComponent.md) - `investigate`, shared/components/placeholder-page/placeholder-page.component.ts +- [SourceStatusBadgeComponent](../shared/components/SourceStatusBadgeComponent.md) - `investigate`, shared/components/source-status-badge.component.ts +- [SourceTypeIconComponent](../shared/components/SourceTypeIconComponent.md) - `investigate`, shared/components/source-type-icon.component.ts +- [ThemeToggleComponent](../shared/components/theme-toggle/ThemeToggleComponent.md) - `investigate`, shared/components/theme-toggle/theme-toggle.component.ts +- [ViewModeToggleComponent](../shared/components/view-mode-toggle/ViewModeToggleComponent.md) - `investigate`, shared/components/view-mode-toggle/view-mode-toggle.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/cvss/README.md b/docs/modules/ui/component-preservation-map/components/dead/cvss/README.md new file mode 100644 index 000000000..a9120c285 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/cvss/README.md @@ -0,0 +1,18 @@ +# Cvss + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Cvss components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [CvssReceiptComponent](../features/cvss/CvssReceiptComponent.md) - `investigate`, features/cvss/cvss-receipt.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/dashboard/README.md b/docs/modules/ui/component-preservation-map/components/dead/dashboard/README.md new file mode 100644 index 000000000..78d5047e0 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/dashboard/README.md @@ -0,0 +1,19 @@ +# Dashboard + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 2 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Dashboard components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [AiRiskDriversComponent](../features/dashboard/AiRiskDriversComponent.md) - `investigate`, features/dashboard/ai-risk-drivers.component.ts +- [SourcesDashboardComponent](../features/dashboard/SourcesDashboardComponent.md) - `investigate`, features/dashboard/sources-dashboard.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/deployments/README.md b/docs/modules/ui/component-preservation-map/components/dead/deployments/README.md new file mode 100644 index 000000000..f4b0765a5 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/deployments/README.md @@ -0,0 +1,18 @@ +# Deployments + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Deployments components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [DeploymentDetailPageComponent](../features/deployments/DeploymentDetailPageComponent.md) - `investigate`, features/deployments/deployment-detail-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/doctor/README.md b/docs/modules/ui/component-preservation-map/components/dead/doctor/README.md new file mode 100644 index 000000000..7a241aee3 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/doctor/README.md @@ -0,0 +1,18 @@ +# Doctor + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Doctor components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [RegistryChecksPanelComponent](../features/doctor/components/registry/RegistryChecksPanelComponent.md) - `investigate`, features/doctor/components/registry/registry-checks-panel.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/environments/README.md b/docs/modules/ui/component-preservation-map/components/dead/environments/README.md new file mode 100644 index 000000000..af41b50ba --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/environments/README.md @@ -0,0 +1,18 @@ +# Environments + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Environments components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [EnvironmentsListPageComponent](../features/environments/EnvironmentsListPageComponent.md) - `investigate`, features/environments/environments-list-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/evidence-thread/README.md b/docs/modules/ui/component-preservation-map/components/dead/evidence-thread/README.md new file mode 100644 index 000000000..81b4d01c6 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/evidence-thread/README.md @@ -0,0 +1,19 @@ +# Evidence Thread + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 2 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Evidence Thread components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [EvidenceThreadListComponent](../features/evidence-thread/components/evidence-thread-list/EvidenceThreadListComponent.md) - `investigate`, features/evidence-thread/components/evidence-thread-list/evidence-thread-list.component.ts +- [EvidenceThreadViewComponent](../features/evidence-thread/components/evidence-thread-view/EvidenceThreadViewComponent.md) - `investigate`, features/evidence-thread/components/evidence-thread-view/evidence-thread-view.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/evidence/README.md b/docs/modules/ui/component-preservation-map/components/dead/evidence/README.md new file mode 100644 index 000000000..26d432fd7 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/evidence/README.md @@ -0,0 +1,20 @@ +# Evidence + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 3 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Evidence components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [EvidenceCenterPageComponent](../features/evidence/EvidenceCenterPageComponent.md) - `investigate`, features/evidence/evidence-center-page.component.ts +- [EvidencePacketPageComponent](../features/evidence/EvidencePacketPageComponent.md) - `investigate`, features/evidence/evidence-packet-page.component.ts +- [AuditBundleCreateModalComponent](../features/evidence/modals/AuditBundleCreateModalComponent.md) - `investigate`, features/evidence/modals/audit-bundle-create-modal.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/admin-notifications/AdminNotificationsComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/admin-notifications/AdminNotificationsComponent.md new file mode 100644 index 000000000..fc661926d --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/admin-notifications/AdminNotificationsComponent.md @@ -0,0 +1,47 @@ +# AdminNotificationsComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Admin Notifications` +- Source: `features/admin-notifications/admin-notifications.component.ts` +- Selector: `app-admin-notifications` + +## What Is It? +Admin Notifications appears to be a dedicated feature surface in the Admin Notifications area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/AutofixWorkbenchComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/AutofixWorkbenchComponent.md new file mode 100644 index 000000000..616201e79 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/AutofixWorkbenchComponent.md @@ -0,0 +1,47 @@ +# AutofixWorkbenchComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Advisory Ai` +- Source: `features/advisory-ai/autofix-workbench.component.ts` +- Selector: `stellaops-autofix-workbench` + +## What Is It? +Autofix Workbench appears to be a dedicated feature surface in the Advisory Ai area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/ChipShowcaseComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/ChipShowcaseComponent.md new file mode 100644 index 000000000..445a919ad --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/ChipShowcaseComponent.md @@ -0,0 +1,47 @@ +# ChipShowcaseComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Advisory Ai` +- Source: `features/advisory-ai/chip-showcase.component.ts` +- Selector: `stellaops-ai-chip-showcase` + +## What Is It? +Chip Showcase appears to be a dedicated feature surface in the Advisory Ai area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/EvidenceDrilldownComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/EvidenceDrilldownComponent.md new file mode 100644 index 000000000..921e37cf9 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/EvidenceDrilldownComponent.md @@ -0,0 +1,47 @@ +# EvidenceDrilldownComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Advisory Ai` +- Source: `features/advisory-ai/evidence-drilldown.component.ts` +- Selector: `stellaops-evidence-drilldown` + +## What Is It? +Evidence Drilldown appears to be a dedicated feature surface in the Advisory Ai area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/ExplainButtonComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/ExplainButtonComponent.md new file mode 100644 index 000000000..d38490047 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/ExplainButtonComponent.md @@ -0,0 +1,47 @@ +# ExplainButtonComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Advisory Ai` +- Source: `features/advisory-ai/explain-button.component.ts` +- Selector: `stellaops-explain-button` + +## What Is It? +Explain Button appears to be a dedicated feature surface in the Advisory Ai area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/ExplanationPanelComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/ExplanationPanelComponent.md new file mode 100644 index 000000000..a4b322898 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/advisory-ai/ExplanationPanelComponent.md @@ -0,0 +1,47 @@ +# ExplanationPanelComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Advisory Ai` +- Source: `features/advisory-ai/explanation-panel.component.ts` +- Selector: `stellaops-explanation-panel` + +## What Is It? +Explanation Panel appears to be a detail panel or supporting drill-down surface in the Advisory Ai area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/aoc/AocVerificationWorkbenchComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/aoc/AocVerificationWorkbenchComponent.md new file mode 100644 index 000000000..b66dd0da5 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/aoc/AocVerificationWorkbenchComponent.md @@ -0,0 +1,47 @@ +# AocVerificationWorkbenchComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Aoc` +- Source: `features/aoc/aoc-verification-workbench.component.ts` +- Selector: `stellaops-aoc-verification-workbench` + +## What Is It? +Aoc Verification Workbench appears to be a dedicated feature surface in the Aoc area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/approvals/ApprovalDetailPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/approvals/ApprovalDetailPageComponent.md new file mode 100644 index 000000000..6f1994bb4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/approvals/ApprovalDetailPageComponent.md @@ -0,0 +1,47 @@ +# ApprovalDetailPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Approvals` +- Source: `features/approvals/approval-detail-page.component.ts` +- Selector: `app-approval-detail-page` + +## What Is It? +Approval Detail Page appears to be a approval and review surface in the Approvals area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/approvals/ApprovalsInboxPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/approvals/ApprovalsInboxPageComponent.md new file mode 100644 index 000000000..cd6340cd8 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/approvals/ApprovalsInboxPageComponent.md @@ -0,0 +1,47 @@ +# ApprovalsInboxPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Approvals` +- Source: `features/approvals/approvals-inbox-page.component.ts` +- Selector: `app-approvals-inbox-page` + +## What Is It? +Approvals Inbox Page appears to be a approval and review surface in the Approvals area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/approvals/modals/RequestExceptionModalComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/approvals/modals/RequestExceptionModalComponent.md new file mode 100644 index 000000000..90e66bbbf --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/approvals/modals/RequestExceptionModalComponent.md @@ -0,0 +1,47 @@ +# RequestExceptionModalComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Approvals` +- Source: `features/approvals/modals/request-exception-modal.component.ts` +- Selector: `app-request-exception-modal` + +## What Is It? +Request Exception Modal appears to be a dedicated feature surface in the Approvals / Modals area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/binary-index/BinaryIndexOpsComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/binary-index/BinaryIndexOpsComponent.md new file mode 100644 index 000000000..fd50adf6f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/binary-index/BinaryIndexOpsComponent.md @@ -0,0 +1,47 @@ +# BinaryIndexOpsComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Binary Index` +- Source: `features/binary-index/binary-index-ops.component.ts` +- Selector: `app-binary-index-ops` + +## What Is It? +Binary Index Ops appears to be a dedicated feature surface in the Binary Index area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/change-trace/ChangeTraceViewerComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/change-trace/ChangeTraceViewerComponent.md new file mode 100644 index 000000000..4ba3153b6 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/change-trace/ChangeTraceViewerComponent.md @@ -0,0 +1,47 @@ +# ChangeTraceViewerComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Change Trace` +- Source: `features/change-trace/change-trace-viewer.component.ts` +- Selector: `stella-change-trace-viewer` + +## What Is It? +Change Trace Viewer appears to be a dedicated feature surface in the Change Trace area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/compare/components/degraded-mode-banner/DegradedModeBannerComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/compare/components/degraded-mode-banner/DegradedModeBannerComponent.md new file mode 100644 index 000000000..e733a560c --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/compare/components/degraded-mode-banner/DegradedModeBannerComponent.md @@ -0,0 +1,47 @@ +# DegradedModeBannerComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Compare` +- Source: `features/compare/components/degraded-mode-banner/degraded-mode-banner.component.ts` +- Selector: `stella-degraded-mode-banner` + +## What Is It? +Degraded Mode Banner appears to be a dedicated feature surface in the Compare / Components / Degraded Mode Banner area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/compare/components/graph-mini-map/GraphMiniMapComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/compare/components/graph-mini-map/GraphMiniMapComponent.md new file mode 100644 index 000000000..9197506ea --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/compare/components/graph-mini-map/GraphMiniMapComponent.md @@ -0,0 +1,47 @@ +# GraphMiniMapComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Compare` +- Source: `features/compare/components/graph-mini-map/graph-mini-map.component.ts` +- Selector: `stella-graph-mini-map` + +## What Is It? +Graph Mini Map appears to be a visualization or exploration surface in the Compare / Components / Graph Mini Map area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/cvss/CvssReceiptComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/cvss/CvssReceiptComponent.md new file mode 100644 index 000000000..359c02553 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/cvss/CvssReceiptComponent.md @@ -0,0 +1,47 @@ +# CvssReceiptComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Cvss` +- Source: `features/cvss/cvss-receipt.component.ts` +- Selector: `app-cvss-receipt` + +## What Is It? +Cvss Receipt appears to be a dedicated feature surface in the Cvss area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/dashboard/AiRiskDriversComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/dashboard/AiRiskDriversComponent.md new file mode 100644 index 000000000..5336398b4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/dashboard/AiRiskDriversComponent.md @@ -0,0 +1,47 @@ +# AiRiskDriversComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Dashboard` +- Source: `features/dashboard/ai-risk-drivers.component.ts` +- Selector: `stella-ai-risk-drivers` + +## What Is It? +Ai Risk Drivers appears to be a dedicated feature surface in the Dashboard area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/dashboard/SourcesDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/dashboard/SourcesDashboardComponent.md new file mode 100644 index 000000000..83f35abd8 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/dashboard/SourcesDashboardComponent.md @@ -0,0 +1,47 @@ +# SourcesDashboardComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Dashboard` +- Source: `features/dashboard/sources-dashboard.component.ts` +- Selector: `app-sources-dashboard` + +## What Is It? +Sources Dashboard appears to be a landing or overview surface in the Dashboard area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/deployments/DeploymentDetailPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/deployments/DeploymentDetailPageComponent.md new file mode 100644 index 000000000..d9494590c --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/deployments/DeploymentDetailPageComponent.md @@ -0,0 +1,47 @@ +# DeploymentDetailPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Deployments` +- Source: `features/deployments/deployment-detail-page.component.ts` +- Selector: `app-deployment-detail-page` + +## What Is It? +Deployment Detail Page appears to be a detail panel or supporting drill-down surface in the Deployments area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/doctor/components/registry/RegistryChecksPanelComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/doctor/components/registry/RegistryChecksPanelComponent.md new file mode 100644 index 000000000..177d01e28 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/doctor/components/registry/RegistryChecksPanelComponent.md @@ -0,0 +1,47 @@ +# RegistryChecksPanelComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Doctor` +- Source: `features/doctor/components/registry/registry-checks-panel.component.ts` +- Selector: `st-registry-checks-panel` + +## What Is It? +Registry Checks Panel appears to be a detail panel or supporting drill-down surface in the Doctor / Components / Registry area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/environments/EnvironmentsListPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/environments/EnvironmentsListPageComponent.md new file mode 100644 index 000000000..831567903 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/environments/EnvironmentsListPageComponent.md @@ -0,0 +1,47 @@ +# EnvironmentsListPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Environments` +- Source: `features/environments/environments-list-page.component.ts` +- Selector: `app-environments-list-page` + +## What Is It? +Environments List Page appears to be a dedicated feature surface in the Environments area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/evidence-thread/components/evidence-thread-list/EvidenceThreadListComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/evidence-thread/components/evidence-thread-list/EvidenceThreadListComponent.md new file mode 100644 index 000000000..cd8057b16 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/evidence-thread/components/evidence-thread-list/EvidenceThreadListComponent.md @@ -0,0 +1,47 @@ +# EvidenceThreadListComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Evidence Thread` +- Source: `features/evidence-thread/components/evidence-thread-list/evidence-thread-list.component.ts` +- Selector: `stella-evidence-thread-list` + +## What Is It? +Evidence Thread List appears to be a dedicated feature surface in the Evidence Thread / Components / Evidence Thread List area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/evidence-thread/components/evidence-thread-view/EvidenceThreadViewComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/evidence-thread/components/evidence-thread-view/EvidenceThreadViewComponent.md new file mode 100644 index 000000000..f42a0737d --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/evidence-thread/components/evidence-thread-view/EvidenceThreadViewComponent.md @@ -0,0 +1,47 @@ +# EvidenceThreadViewComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Evidence Thread` +- Source: `features/evidence-thread/components/evidence-thread-view/evidence-thread-view.component.ts` +- Selector: `stella-evidence-thread-view` + +## What Is It? +Evidence Thread View appears to be a dedicated feature surface in the Evidence Thread / Components / Evidence Thread View area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/evidence/EvidenceCenterPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/evidence/EvidenceCenterPageComponent.md new file mode 100644 index 000000000..191829452 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/evidence/EvidenceCenterPageComponent.md @@ -0,0 +1,47 @@ +# EvidenceCenterPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Evidence` +- Source: `features/evidence/evidence-center-page.component.ts` +- Selector: `app-evidence-center-page` + +## What Is It? +Evidence Center Page appears to be a dedicated feature surface in the Evidence area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/evidence/EvidencePacketPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/evidence/EvidencePacketPageComponent.md new file mode 100644 index 000000000..208136819 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/evidence/EvidencePacketPageComponent.md @@ -0,0 +1,47 @@ +# EvidencePacketPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Evidence` +- Source: `features/evidence/evidence-packet-page.component.ts` +- Selector: `app-evidence-packet-page` + +## What Is It? +Evidence Packet Page appears to be a dedicated feature surface in the Evidence area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/evidence/modals/AuditBundleCreateModalComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/evidence/modals/AuditBundleCreateModalComponent.md new file mode 100644 index 000000000..792b84b9c --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/evidence/modals/AuditBundleCreateModalComponent.md @@ -0,0 +1,47 @@ +# AuditBundleCreateModalComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Evidence` +- Source: `features/evidence/modals/audit-bundle-create-modal.component.ts` +- Selector: `app-audit-bundle-create-modal` + +## What Is It? +Audit Bundle Create Modal appears to be a audit and evidence surface in the Evidence / Modals area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/findings/detail/FindingDetailLayoutComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/findings/detail/FindingDetailLayoutComponent.md new file mode 100644 index 000000000..351db3964 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/findings/detail/FindingDetailLayoutComponent.md @@ -0,0 +1,47 @@ +# FindingDetailLayoutComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Findings` +- Source: `features/findings/detail/finding-detail-layout.component.ts` +- Selector: `stella-finding-detail-layout` + +## What Is It? +Finding Detail Layout appears to be a detail panel or supporting drill-down surface in the Findings / Detail area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/graph/GraphFiltersComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/graph/GraphFiltersComponent.md new file mode 100644 index 000000000..11801adad --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/graph/GraphFiltersComponent.md @@ -0,0 +1,47 @@ +# GraphFiltersComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Graph` +- Source: `features/graph/graph-filters.component.ts` +- Selector: `app-graph-filters` + +## What Is It? +Graph Filters appears to be a visualization or exploration surface in the Graph area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/graph/GraphHotkeyHelpComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/graph/GraphHotkeyHelpComponent.md new file mode 100644 index 000000000..da6d2d0a0 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/graph/GraphHotkeyHelpComponent.md @@ -0,0 +1,47 @@ +# GraphHotkeyHelpComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Graph` +- Source: `features/graph/graph-hotkey-help.component.ts` +- Selector: `app-graph-hotkey-help` + +## What Is It? +Graph Hotkey Help appears to be a visualization or exploration surface in the Graph area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/graph/GraphSidePanelsComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/graph/GraphSidePanelsComponent.md new file mode 100644 index 000000000..401264e4e --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/graph/GraphSidePanelsComponent.md @@ -0,0 +1,47 @@ +# GraphSidePanelsComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Graph` +- Source: `features/graph/graph-side-panels.component.ts` +- Selector: `app-graph-side-panels` + +## What Is It? +Graph Side Panels appears to be a detail panel or supporting drill-down surface in the Graph area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/home/HomeDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/home/HomeDashboardComponent.md new file mode 100644 index 000000000..c0bc174be --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/home/HomeDashboardComponent.md @@ -0,0 +1,47 @@ +# HomeDashboardComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Home` +- Source: `features/home/home-dashboard.component.ts` +- Selector: `app-home-dashboard` + +## What Is It? +Home Dashboard appears to be a landing or overview surface in the Home area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/audit-pack-export/AuditPackExportComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/audit-pack-export/AuditPackExportComponent.md new file mode 100644 index 000000000..0de1947d5 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/audit-pack-export/AuditPackExportComponent.md @@ -0,0 +1,47 @@ +# AuditPackExportComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Lineage` +- Source: `features/lineage/components/audit-pack-export/audit-pack-export.component.ts` +- Selector: `app-audit-pack-export` + +## What Is It? +Audit Pack Export appears to be a audit and evidence surface in the Lineage / Components / Audit Pack Export area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/explainer-timeline/ExplainerTimelineComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/explainer-timeline/ExplainerTimelineComponent.md new file mode 100644 index 000000000..88b8c1a99 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/explainer-timeline/ExplainerTimelineComponent.md @@ -0,0 +1,47 @@ +# ExplainerTimelineComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Lineage` +- Source: `features/lineage/components/explainer-timeline/explainer-timeline.component.ts` +- Selector: `app-explainer-timeline` + +## What Is It? +Explainer Timeline appears to be a visualization or exploration surface in the Lineage / Components / Explainer Timeline area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-compare-panel/LineageComparePanelComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-compare-panel/LineageComparePanelComponent.md new file mode 100644 index 000000000..4d9920ad9 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-compare-panel/LineageComparePanelComponent.md @@ -0,0 +1,47 @@ +# LineageComparePanelComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Lineage` +- Source: `features/lineage/components/lineage-compare-panel/lineage-compare-panel.component.ts` +- Selector: `app-lineage-compare-panel` + +## What Is It? +Lineage Compare Panel appears to be a detail panel or supporting drill-down surface in the Lineage / Components / Lineage Compare Panel area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-detail-panel/LineageDetailPanelComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-detail-panel/LineageDetailPanelComponent.md new file mode 100644 index 000000000..a89762ff5 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-detail-panel/LineageDetailPanelComponent.md @@ -0,0 +1,47 @@ +# LineageDetailPanelComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Lineage` +- Source: `features/lineage/components/lineage-detail-panel/lineage-detail-panel.component.ts` +- Selector: `app-lineage-detail-panel` + +## What Is It? +Lineage Detail Panel appears to be a detail panel or supporting drill-down surface in the Lineage / Components / Lineage Detail Panel area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-edge/LineageEdgeComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-edge/LineageEdgeComponent.md new file mode 100644 index 000000000..b305890f6 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-edge/LineageEdgeComponent.md @@ -0,0 +1,47 @@ +# LineageEdgeComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Lineage` +- Source: `features/lineage/components/lineage-edge/lineage-edge.component.ts` +- Selector: `[app-lineage-edge]` + +## What Is It? +Lineage Edge appears to be a dedicated feature surface in the Lineage / Components / Lineage Edge area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-export-buttons/LineageExportButtonsComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-export-buttons/LineageExportButtonsComponent.md new file mode 100644 index 000000000..cfb723ccc --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-export-buttons/LineageExportButtonsComponent.md @@ -0,0 +1,47 @@ +# LineageExportButtonsComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Lineage` +- Source: `features/lineage/components/lineage-export-buttons/lineage-export-buttons.component.ts` +- Selector: `app-lineage-export-buttons` + +## What Is It? +Lineage Export Buttons appears to be a dedicated feature surface in the Lineage / Components / Lineage Export Buttons area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-export-dialog/LineageExportDialogComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-export-dialog/LineageExportDialogComponent.md new file mode 100644 index 000000000..0b02d1d20 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-export-dialog/LineageExportDialogComponent.md @@ -0,0 +1,47 @@ +# LineageExportDialogComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Lineage` +- Source: `features/lineage/components/lineage-export-dialog/lineage-export-dialog.component.ts` +- Selector: `app-lineage-export-dialog` + +## What Is It? +Lineage Export Dialog appears to be a dedicated feature surface in the Lineage / Components / Lineage Export Dialog area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-mobile-compare/LineageMobileCompareComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-mobile-compare/LineageMobileCompareComponent.md new file mode 100644 index 000000000..70e4f7e12 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-mobile-compare/LineageMobileCompareComponent.md @@ -0,0 +1,47 @@ +# LineageMobileCompareComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Lineage` +- Source: `features/lineage/components/lineage-mobile-compare/lineage-mobile-compare.component.ts` +- Selector: `app-lineage-mobile-compare` + +## What Is It? +Lineage Mobile Compare appears to be a dedicated feature surface in the Lineage / Components / Lineage Mobile Compare area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-node/LineageNodeComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-node/LineageNodeComponent.md new file mode 100644 index 000000000..c7d387443 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-node/LineageNodeComponent.md @@ -0,0 +1,47 @@ +# LineageNodeComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Lineage` +- Source: `features/lineage/components/lineage-node/lineage-node.component.ts` +- Selector: `[app-lineage-node]` + +## What Is It? +Lineage Node appears to be a dedicated feature surface in the Lineage / Components / Lineage Node area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-provenance-compare/LineageProvenanceCompareComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-provenance-compare/LineageProvenanceCompareComponent.md new file mode 100644 index 000000000..bb53d84dc --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-provenance-compare/LineageProvenanceCompareComponent.md @@ -0,0 +1,47 @@ +# LineageProvenanceCompareComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Lineage` +- Source: `features/lineage/components/lineage-provenance-compare/lineage-provenance-compare.component.ts` +- Selector: `app-lineage-provenance-compare` + +## What Is It? +Lineage Provenance Compare appears to be a dedicated feature surface in the Lineage / Components / Lineage Provenance Compare area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-sbom-diff/LineageSbomDiffComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-sbom-diff/LineageSbomDiffComponent.md new file mode 100644 index 000000000..1271aec76 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-sbom-diff/LineageSbomDiffComponent.md @@ -0,0 +1,47 @@ +# LineageSbomDiffComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Lineage` +- Source: `features/lineage/components/lineage-sbom-diff/lineage-sbom-diff.component.ts` +- Selector: `app-lineage-sbom-diff` + +## What Is It? +Lineage Sbom Diff appears to be a dedicated feature surface in the Lineage / Components / Lineage Sbom Diff area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-vex-diff/LineageVexDiffComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-vex-diff/LineageVexDiffComponent.md new file mode 100644 index 000000000..8e04926ad --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/lineage-vex-diff/LineageVexDiffComponent.md @@ -0,0 +1,47 @@ +# LineageVexDiffComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Lineage` +- Source: `features/lineage/components/lineage-vex-diff/lineage-vex-diff.component.ts` +- Selector: `app-lineage-vex-diff` + +## What Is It? +Lineage Vex Diff appears to be a dedicated feature surface in the Lineage / Components / Lineage Vex Diff area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/node-diff-table/NodeDiffTableComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/node-diff-table/NodeDiffTableComponent.md new file mode 100644 index 000000000..c11dad9ec --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/node-diff-table/NodeDiffTableComponent.md @@ -0,0 +1,47 @@ +# NodeDiffTableComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Lineage` +- Source: `features/lineage/components/node-diff-table/diff-table.component.ts` +- Selector: `app-node-diff-table` + +## What Is It? +Node Diff Table appears to be a dedicated feature surface in the Lineage / Components / Node Diff Table area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/pinned-explanation/pinned-panel/PinnedPanelComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/pinned-explanation/pinned-panel/PinnedPanelComponent.md new file mode 100644 index 000000000..8704133ec --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/lineage/components/pinned-explanation/pinned-panel/PinnedPanelComponent.md @@ -0,0 +1,47 @@ +# PinnedPanelComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Lineage` +- Source: `features/lineage/components/pinned-explanation/pinned-panel/pinned-panel.component.ts` +- Selector: `app-pinned-panel` + +## What Is It? +Pinned Panel appears to be a detail panel or supporting drill-down surface in the Lineage / Components / Pinned Explanation / Pinned Panel area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/operations/search-quality/SearchQualityDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/operations/search-quality/SearchQualityDashboardComponent.md new file mode 100644 index 000000000..4429e0473 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/operations/search-quality/SearchQualityDashboardComponent.md @@ -0,0 +1,47 @@ +# SearchQualityDashboardComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Operations` +- Source: `features/operations/search-quality/search-quality-dashboard.component.ts` +- Selector: `app-search-quality-dashboard` + +## What Is It? +Search Quality Dashboard appears to be a landing or overview surface in the Operations / Search Quality area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/BundleExplorerComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/BundleExplorerComponent.md new file mode 100644 index 000000000..97622289b --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/BundleExplorerComponent.md @@ -0,0 +1,47 @@ +# BundleExplorerComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Platform Ops Legacy` +- Source: `features/platform-ops/federation-telemetry/bundle-explorer.component.ts` +- Selector: `app-bundle-explorer` + +## What Is It? +Bundle Explorer appears to be a dedicated feature surface in the Platform Ops / Federation Telemetry area. + +## Why It Likely Fell Out Of The Product +Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind. + +## What Is Worth Preserving +Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + +## Likely Successor Or Merge Target +/ops and /ops/platform-setup + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/ConsentManagementComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/ConsentManagementComponent.md new file mode 100644 index 000000000..1cfc910eb --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/ConsentManagementComponent.md @@ -0,0 +1,47 @@ +# ConsentManagementComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Platform Ops Legacy` +- Source: `features/platform-ops/federation-telemetry/consent-management.component.ts` +- Selector: `app-consent-management` + +## What Is It? +Consent Management appears to be a dedicated feature surface in the Platform Ops / Federation Telemetry area. + +## Why It Likely Fell Out Of The Product +Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind. + +## What Is Worth Preserving +Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + +## Likely Successor Or Merge Target +/ops and /ops/platform-setup + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/FederationOverviewComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/FederationOverviewComponent.md new file mode 100644 index 000000000..796507789 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/FederationOverviewComponent.md @@ -0,0 +1,47 @@ +# FederationOverviewComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Platform Ops Legacy` +- Source: `features/platform-ops/federation-telemetry/federation-overview.component.ts` +- Selector: `app-federation-overview` + +## What Is It? +Federation Overview appears to be a landing or overview surface in the Platform Ops / Federation Telemetry area. + +## Why It Likely Fell Out Of The Product +Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind. + +## What Is Worth Preserving +Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + +## Likely Successor Or Merge Target +/ops and /ops/platform-setup + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/IntelligenceViewerComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/IntelligenceViewerComponent.md new file mode 100644 index 000000000..a6331899f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/IntelligenceViewerComponent.md @@ -0,0 +1,47 @@ +# IntelligenceViewerComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Platform Ops Legacy` +- Source: `features/platform-ops/federation-telemetry/intelligence-viewer.component.ts` +- Selector: `app-intelligence-viewer` + +## What Is It? +Intelligence Viewer appears to be a dedicated feature surface in the Platform Ops / Federation Telemetry area. + +## Why It Likely Fell Out Of The Product +Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind. + +## What Is Worth Preserving +Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + +## Likely Successor Or Merge Target +/ops and /ops/platform-setup + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/PrivacyBudgetMonitorComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/PrivacyBudgetMonitorComponent.md new file mode 100644 index 000000000..730f7c84e --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/platform-ops/federation-telemetry/PrivacyBudgetMonitorComponent.md @@ -0,0 +1,47 @@ +# PrivacyBudgetMonitorComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Platform Ops Legacy` +- Source: `features/platform-ops/federation-telemetry/privacy-budget-monitor.component.ts` +- Selector: `app-privacy-budget-monitor` + +## What Is It? +Privacy Budget Monitor appears to be a dedicated feature surface in the Platform Ops / Federation Telemetry area. + +## Why It Likely Fell Out Of The Product +Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind. + +## What Is Worth Preserving +Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + +## Likely Successor Or Merge Target +/ops and /ops/platform-setup + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/platform/PlatformHomePageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/platform/PlatformHomePageComponent.md new file mode 100644 index 000000000..025a5bccb --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/platform/PlatformHomePageComponent.md @@ -0,0 +1,47 @@ +# PlatformHomePageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Platform` +- Source: `features/platform/platform-home-page.component.ts` +- Selector: `app-platform-home-page` + +## What Is It? +Platform Home Page appears to be a landing or overview surface in the Platform area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/ConflictVisualizerComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/ConflictVisualizerComponent.md new file mode 100644 index 000000000..727447bbe --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/ConflictVisualizerComponent.md @@ -0,0 +1,47 @@ +# ConflictVisualizerComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `high` +- Feature branch: `Policy Studio Legacy` +- Source: `features/policy-studio/ai/conflict-visualizer.component.ts` +- Selector: `stellaops-conflict-visualizer` + +## What Is It? +Conflict Visualizer appears to be a visualization or exploration surface in the Policy Studio / Ai area. + +## Why It Likely Fell Out Of The Product +The current route tree moved policy work into newer governance and simulation surfaces, leaving the old `/policy-studio` family unmounted. + +## What Is Worth Preserving +Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + +## Likely Successor Or Merge Target +/admin/policy/governance and /admin/policy/simulation + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/contracts/policy-studio.md](../../../../../../../../contracts/policy-studio.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/LiveRulePreviewComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/LiveRulePreviewComponent.md new file mode 100644 index 000000000..c5b6dcdd7 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/LiveRulePreviewComponent.md @@ -0,0 +1,47 @@ +# LiveRulePreviewComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `high` +- Feature branch: `Policy Studio Legacy` +- Source: `features/policy-studio/ai/live-rule-preview.component.ts` +- Selector: `stellaops-live-rule-preview` + +## What Is It? +Live Rule Preview appears to be a approval and review surface in the Policy Studio / Ai area. + +## Why It Likely Fell Out Of The Product +The current route tree moved policy work into newer governance and simulation surfaces, leaving the old `/policy-studio` family unmounted. + +## What Is Worth Preserving +Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + +## Likely Successor Or Merge Target +/admin/policy/governance and /admin/policy/simulation + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/contracts/policy-studio.md](../../../../../../../../contracts/policy-studio.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/TestCasePanelComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/TestCasePanelComponent.md new file mode 100644 index 000000000..948c86336 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/TestCasePanelComponent.md @@ -0,0 +1,47 @@ +# TestCasePanelComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `high` +- Feature branch: `Policy Studio Legacy` +- Source: `features/policy-studio/ai/test-case-panel.component.ts` +- Selector: `stellaops-test-case-panel` + +## What Is It? +Test Case Panel appears to be a detail panel or supporting drill-down surface in the Policy Studio / Ai area. + +## Why It Likely Fell Out Of The Product +The current route tree moved policy work into newer governance and simulation surfaces, leaving the old `/policy-studio` family unmounted. + +## What Is Worth Preserving +Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + +## Likely Successor Or Merge Target +/admin/policy/governance and /admin/policy/simulation + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/contracts/policy-studio.md](../../../../../../../../contracts/policy-studio.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/VersionHistoryComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/VersionHistoryComponent.md new file mode 100644 index 000000000..55b146bdb --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/ai/VersionHistoryComponent.md @@ -0,0 +1,47 @@ +# VersionHistoryComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `high` +- Feature branch: `Policy Studio Legacy` +- Source: `features/policy-studio/ai/version-history.component.ts` +- Selector: `stellaops-version-history` + +## What Is It? +Version History appears to be a dedicated feature surface in the Policy Studio / Ai area. + +## Why It Likely Fell Out Of The Product +The current route tree moved policy work into newer governance and simulation surfaces, leaving the old `/policy-studio` family unmounted. + +## What Is Worth Preserving +Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + +## Likely Successor Or Merge Target +/admin/policy/governance and /admin/policy/simulation + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/contracts/policy-studio.md](../../../../../../../../contracts/policy-studio.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/approvals/PolicyApprovalsComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/approvals/PolicyApprovalsComponent.md new file mode 100644 index 000000000..2d1630995 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/approvals/PolicyApprovalsComponent.md @@ -0,0 +1,47 @@ +# PolicyApprovalsComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `high` +- Feature branch: `Policy Studio Legacy` +- Source: `features/policy-studio/approvals/policy-approvals.component.ts` +- Selector: `app-policy-approvals` + +## What Is It? +Policy Approvals appears to be a approval and review surface in the Policy Studio / Approvals area. + +## Why It Likely Fell Out Of The Product +The current route tree moved policy work into newer governance and simulation surfaces, leaving the old `/policy-studio` family unmounted. + +## What Is Worth Preserving +Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + +## Likely Successor Or Merge Target +/admin/policy/governance and /admin/policy/simulation + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/contracts/policy-studio.md](../../../../../../../../contracts/policy-studio.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/dashboard/PolicyDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/dashboard/PolicyDashboardComponent.md new file mode 100644 index 000000000..e3417501e --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/dashboard/PolicyDashboardComponent.md @@ -0,0 +1,47 @@ +# PolicyDashboardComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `high` +- Feature branch: `Policy Studio Legacy` +- Source: `features/policy-studio/dashboard/policy-dashboard.component.ts` +- Selector: `app-policy-dashboard` + +## What Is It? +Policy Dashboard appears to be a landing or overview surface in the Policy Studio / Dashboard area. + +## Why It Likely Fell Out Of The Product +The current route tree moved policy work into newer governance and simulation surfaces, leaving the old `/policy-studio` family unmounted. + +## What Is Worth Preserving +Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + +## Likely Successor Or Merge Target +/admin/policy/governance and /admin/policy/simulation + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/contracts/policy-studio.md](../../../../../../../../contracts/policy-studio.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/editor/PolicyEditorComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/editor/PolicyEditorComponent.md new file mode 100644 index 000000000..6e5663445 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/editor/PolicyEditorComponent.md @@ -0,0 +1,47 @@ +# PolicyEditorComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `high` +- Feature branch: `Policy Studio Legacy` +- Source: `features/policy-studio/editor/policy-editor.component.ts` +- Selector: `app-policy-editor` + +## What Is It? +Policy Editor appears to be a authoring or editing surface in the Policy Studio / Editor area. + +## Why It Likely Fell Out Of The Product +The current route tree moved policy work into newer governance and simulation surfaces, leaving the old `/policy-studio` family unmounted. + +## What Is Worth Preserving +Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + +## Likely Successor Or Merge Target +/admin/policy/governance and /admin/policy/simulation + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/contracts/policy-studio.md](../../../../../../../../contracts/policy-studio.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/explain/PolicyExplainComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/explain/PolicyExplainComponent.md new file mode 100644 index 000000000..5805dc482 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/explain/PolicyExplainComponent.md @@ -0,0 +1,47 @@ +# PolicyExplainComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `high` +- Feature branch: `Policy Studio Legacy` +- Source: `features/policy-studio/explain/policy-explain.component.ts` +- Selector: `app-policy-explain` + +## What Is It? +Policy Explain appears to be a dedicated feature surface in the Policy Studio / Explain area. + +## Why It Likely Fell Out Of The Product +The current route tree moved policy work into newer governance and simulation surfaces, leaving the old `/policy-studio` family unmounted. + +## What Is Worth Preserving +Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + +## Likely Successor Or Merge Target +/admin/policy/governance and /admin/policy/simulation + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/contracts/policy-studio.md](../../../../../../../../contracts/policy-studio.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/nl-input/PolicyNlInputComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/nl-input/PolicyNlInputComponent.md new file mode 100644 index 000000000..4df2b98ff --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/nl-input/PolicyNlInputComponent.md @@ -0,0 +1,47 @@ +# PolicyNlInputComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `high` +- Feature branch: `Policy Studio Legacy` +- Source: `features/policy-studio/nl-input/policy-nl-input.component.ts` +- Selector: `stellaops-policy-nl-input` + +## What Is It? +Policy Nl Input appears to be a dedicated feature surface in the Policy Studio / Nl Input area. + +## Why It Likely Fell Out Of The Product +The current route tree moved policy work into newer governance and simulation surfaces, leaving the old `/policy-studio` family unmounted. + +## What Is Worth Preserving +Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + +## Likely Successor Or Merge Target +/admin/policy/governance and /admin/policy/simulation + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/contracts/policy-studio.md](../../../../../../../../contracts/policy-studio.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/rule-builder/PolicyRuleBuilderComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/rule-builder/PolicyRuleBuilderComponent.md new file mode 100644 index 000000000..843ae4caa --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/rule-builder/PolicyRuleBuilderComponent.md @@ -0,0 +1,47 @@ +# PolicyRuleBuilderComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `high` +- Feature branch: `Policy Studio Legacy` +- Source: `features/policy-studio/rule-builder/policy-rule-builder.component.ts` +- Selector: `app-policy-rule-builder` + +## What Is It? +Policy Rule Builder appears to be a authoring or editing surface in the Policy Studio / Rule Builder area. + +## Why It Likely Fell Out Of The Product +The current route tree moved policy work into newer governance and simulation surfaces, leaving the old `/policy-studio` family unmounted. + +## What Is Worth Preserving +Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + +## Likely Successor Or Merge Target +/admin/policy/governance and /admin/policy/simulation + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/contracts/policy-studio.md](../../../../../../../../contracts/policy-studio.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/yaml/PolicyYamlEditorComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/yaml/PolicyYamlEditorComponent.md new file mode 100644 index 000000000..7efde1b47 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/policy-studio/yaml/PolicyYamlEditorComponent.md @@ -0,0 +1,47 @@ +# PolicyYamlEditorComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `high` +- Feature branch: `Policy Studio Legacy` +- Source: `features/policy-studio/yaml/policy-yaml-editor.component.ts` +- Selector: `app-policy-yaml-editor` + +## What Is It? +Policy Yaml Editor appears to be a authoring or editing surface in the Policy Studio / Yaml area. + +## Why It Likely Fell Out Of The Product +The current route tree moved policy work into newer governance and simulation surfaces, leaving the old `/policy-studio` family unmounted. + +## What Is Worth Preserving +Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + +## Likely Successor Or Merge Target +/admin/policy/governance and /admin/policy/simulation + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/contracts/policy-studio.md](../../../../../../../../contracts/policy-studio.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/policy/components/attestation-badge/AttestationBadgeComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/policy/components/attestation-badge/AttestationBadgeComponent.md new file mode 100644 index 000000000..ebdf800e3 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/policy/components/attestation-badge/AttestationBadgeComponent.md @@ -0,0 +1,47 @@ +# AttestationBadgeComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Policy` +- Source: `features/policy/components/attestation-badge/attestation-badge.component.ts` +- Selector: `app-attestation-badge` + +## What Is It? +Attestation Badge appears to be a dedicated feature surface in the Policy / Components / Attestation Badge area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/policy/components/evidence-chain-viewer/EvidenceChainViewerComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/policy/components/evidence-chain-viewer/EvidenceChainViewerComponent.md new file mode 100644 index 000000000..44079d6a2 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/policy/components/evidence-chain-viewer/EvidenceChainViewerComponent.md @@ -0,0 +1,47 @@ +# EvidenceChainViewerComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Policy` +- Source: `features/policy/components/evidence-chain-viewer/evidence-chain-viewer.component.ts` +- Selector: `app-evidence-chain-viewer` + +## What Is It? +Evidence Chain Viewer appears to be a dedicated feature surface in the Policy / Components / Evidence Chain Viewer area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/policy/components/verdict-proof-panel/VerdictProofPanelComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/policy/components/verdict-proof-panel/VerdictProofPanelComponent.md new file mode 100644 index 000000000..05bf7a437 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/policy/components/verdict-proof-panel/VerdictProofPanelComponent.md @@ -0,0 +1,47 @@ +# VerdictProofPanelComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Policy` +- Source: `features/policy/components/verdict-proof-panel/verdict-proof-panel.component.ts` +- Selector: `app-verdict-proof-panel` + +## What Is It? +Verdict Proof Panel appears to be a detail panel or supporting drill-down surface in the Policy / Components / Verdict Proof Panel area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/promotions/CreatePromotionComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/promotions/CreatePromotionComponent.md new file mode 100644 index 000000000..c60f6308f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/promotions/CreatePromotionComponent.md @@ -0,0 +1,47 @@ +# CreatePromotionComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Promotions` +- Source: `features/promotions/create-promotion.component.ts` +- Selector: `app-create-promotion` + +## What Is It? +Create Promotion appears to be a dedicated feature surface in the Promotions area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/promotions/PromotionDetailComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/promotions/PromotionDetailComponent.md new file mode 100644 index 000000000..02e2943f2 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/promotions/PromotionDetailComponent.md @@ -0,0 +1,47 @@ +# PromotionDetailComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Promotions` +- Source: `features/promotions/promotion-detail.component.ts` +- Selector: `app-promotion-detail` + +## What Is It? +Promotion Detail appears to be a detail panel or supporting drill-down surface in the Promotions area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/proof-chain/components/ProofDetailPanelComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/proof-chain/components/ProofDetailPanelComponent.md new file mode 100644 index 000000000..ed9687109 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/proof-chain/components/ProofDetailPanelComponent.md @@ -0,0 +1,47 @@ +# ProofDetailPanelComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Proof Chain` +- Source: `features/proof-chain/components/proof-detail-panel.component.ts` +- Selector: `stella-proof-detail-panel` + +## What Is It? +Proof Detail Panel appears to be a detail panel or supporting drill-down surface in the Proof Chain / Components area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/proof-studio/components/proof-studio-container/ProofStudioContainerComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/proof-studio/components/proof-studio-container/ProofStudioContainerComponent.md new file mode 100644 index 000000000..ca5fbfbe4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/proof-studio/components/proof-studio-container/ProofStudioContainerComponent.md @@ -0,0 +1,47 @@ +# ProofStudioContainerComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Proof Studio` +- Source: `features/proof-studio/components/proof-studio-container/proof-studio-container.component.ts` +- Selector: `app-proof-studio-container` + +## What Is It? +Proof Studio Container appears to be a dedicated feature surface in the Proof Studio / Components / Proof Studio Container area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/qa/WebFeatureRecheckWorkbenchComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/qa/WebFeatureRecheckWorkbenchComponent.md new file mode 100644 index 000000000..2db9a5fba --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/qa/WebFeatureRecheckWorkbenchComponent.md @@ -0,0 +1,47 @@ +# WebFeatureRecheckWorkbenchComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Qa` +- Source: `features/qa/web-feature-recheck-workbench.component.ts` +- Selector: `app-web-feature-recheck-workbench` + +## What Is It? +Web Feature Recheck Workbench appears to be a dedicated feature surface in the Qa area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/reachability/PoEDrawerComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/reachability/PoEDrawerComponent.md new file mode 100644 index 000000000..68acdd9b9 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/reachability/PoEDrawerComponent.md @@ -0,0 +1,47 @@ +# PoEDrawerComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `high` +- Feature branch: `Reachability Witnessing` +- Source: `features/reachability/poe-drawer.component.ts` +- Selector: `app-poe-drawer` + +## What Is It? +Po EDrawer appears to be a detail panel or supporting drill-down surface in the Reachability area. + +## Why It Likely Fell Out Of The Product +The supporting pages and drawers are not mounted even though reachability remains a core Stella Ops differentiator. + +## What Is Worth Preserving +Keep witness capture, proof overlays, and explainability flows that can reinforce policy and evidence decisions. + +## Likely Successor Or Merge Target +/security/reachability or /evidence + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/reachability/WitnessPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/reachability/WitnessPageComponent.md new file mode 100644 index 000000000..25250c737 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/reachability/WitnessPageComponent.md @@ -0,0 +1,47 @@ +# WitnessPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `high` +- Feature branch: `Reachability Witnessing` +- Source: `features/reachability/witness-page.component.ts` +- Selector: `app-witness-page` + +## What Is It? +Witness Page appears to be a dedicated feature surface in the Reachability area. + +## Why It Likely Fell Out Of The Product +The supporting pages and drawers are not mounted even though reachability remains a core Stella Ops differentiator. + +## What Is Worth Preserving +Keep witness capture, proof overlays, and explainability flows that can reinforce policy and evidence decisions. + +## Likely Successor Or Merge Target +/security/reachability or /evidence + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/RegistryAdminComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/RegistryAdminComponent.md new file mode 100644 index 000000000..e7267e682 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/RegistryAdminComponent.md @@ -0,0 +1,47 @@ +# RegistryAdminComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Registry Admin` +- Source: `features/registry-admin/registry-admin.component.ts` +- Selector: `app-registry-admin` + +## What Is It? +Registry Admin appears to be a dedicated feature surface in the Registry Admin area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/components/PlanAuditComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/components/PlanAuditComponent.md new file mode 100644 index 000000000..c0d8d36ff --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/components/PlanAuditComponent.md @@ -0,0 +1,47 @@ +# PlanAuditComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Registry Admin` +- Source: `features/registry-admin/components/plan-audit.component.ts` +- Selector: `app-plan-audit` + +## What Is It? +Plan Audit appears to be a audit and evidence surface in the Registry Admin / Components area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/components/PlanEditorComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/components/PlanEditorComponent.md new file mode 100644 index 000000000..54871b3e5 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/components/PlanEditorComponent.md @@ -0,0 +1,47 @@ +# PlanEditorComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Registry Admin` +- Source: `features/registry-admin/components/plan-editor.component.ts` +- Selector: `app-plan-editor` + +## What Is It? +Plan Editor appears to be a authoring or editing surface in the Registry Admin / Components area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/components/PlanListComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/components/PlanListComponent.md new file mode 100644 index 000000000..228ededec --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/registry-admin/components/PlanListComponent.md @@ -0,0 +1,47 @@ +# PlanListComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Registry Admin` +- Source: `features/registry-admin/components/plan-list.component.ts` +- Selector: `app-plan-list` + +## What Is It? +Plan List appears to be a dedicated feature surface in the Registry Admin / Components area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-control/governance/ReleaseControlGovernanceHubComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/governance/ReleaseControlGovernanceHubComponent.md new file mode 100644 index 000000000..4fb237c6f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/governance/ReleaseControlGovernanceHubComponent.md @@ -0,0 +1,47 @@ +# ReleaseControlGovernanceHubComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `archive` +- Preservation value: `low` +- Feature branch: `Release Control Legacy` +- Source: `features/release-control/governance/release-control-governance-hub.component.ts` +- Selector: `app-release-control-governance-hub` + +## What Is It? +Release Control Governance Hub appears to be a dedicated feature surface in the Release Control / Governance area. + +## Why It Likely Fell Out Of The Product +The canonical IA now redirects old `release-control/*` concepts into `/releases`, `/ops`, and `/setup`, so the original surfaces no longer anchor the product. + +## What Is Worth Preserving +Preserve only reusable copy, sequencing, or setup checklists that still improve the newer release and topology flows. + +## Likely Successor Or Merge Target +/releases, /ops/platform-setup, and /setup/topology + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/S00_route_deprecation_map.md](../../../../../../v2-rewire/S00_route_deprecation_map.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-control/governance/ReleaseControlGovernanceSectionComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/governance/ReleaseControlGovernanceSectionComponent.md new file mode 100644 index 000000000..b12837f42 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/governance/ReleaseControlGovernanceSectionComponent.md @@ -0,0 +1,47 @@ +# ReleaseControlGovernanceSectionComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `archive` +- Preservation value: `low` +- Feature branch: `Release Control Legacy` +- Source: `features/release-control/governance/release-control-governance-section.component.ts` +- Selector: `app-release-control-governance-section` + +## What Is It? +Release Control Governance Section appears to be a dedicated feature surface in the Release Control / Governance area. + +## Why It Likely Fell Out Of The Product +The canonical IA now redirects old `release-control/*` concepts into `/releases`, `/ops`, and `/setup`, so the original surfaces no longer anchor the product. + +## What Is Worth Preserving +Preserve only reusable copy, sequencing, or setup checklists that still improve the newer release and topology flows. + +## Likely Successor Or Merge Target +/releases, /ops/platform-setup, and /setup/topology + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/S00_route_deprecation_map.md](../../../../../../v2-rewire/S00_route_deprecation_map.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-control/regions/RegionDetailComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/regions/RegionDetailComponent.md new file mode 100644 index 000000000..cde6beafd --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/regions/RegionDetailComponent.md @@ -0,0 +1,47 @@ +# RegionDetailComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `archive` +- Preservation value: `low` +- Feature branch: `Release Control Legacy` +- Source: `features/release-control/regions/region-detail.component.ts` +- Selector: `app-region-detail` + +## What Is It? +Region Detail appears to be a detail panel or supporting drill-down surface in the Release Control / Regions area. + +## Why It Likely Fell Out Of The Product +The canonical IA now redirects old `release-control/*` concepts into `/releases`, `/ops`, and `/setup`, so the original surfaces no longer anchor the product. + +## What Is Worth Preserving +Preserve only reusable copy, sequencing, or setup checklists that still improve the newer release and topology flows. + +## Likely Successor Or Merge Target +/releases, /ops/platform-setup, and /setup/topology + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/S00_route_deprecation_map.md](../../../../../../v2-rewire/S00_route_deprecation_map.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-control/regions/RegionsOverviewComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/regions/RegionsOverviewComponent.md new file mode 100644 index 000000000..301321d6e --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/regions/RegionsOverviewComponent.md @@ -0,0 +1,47 @@ +# RegionsOverviewComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `archive` +- Preservation value: `low` +- Feature branch: `Release Control Legacy` +- Source: `features/release-control/regions/regions-overview.component.ts` +- Selector: `app-regions-overview` + +## What Is It? +Regions Overview appears to be a landing or overview surface in the Release Control / Regions area. + +## Why It Likely Fell Out Of The Product +The canonical IA now redirects old `release-control/*` concepts into `/releases`, `/ops`, and `/setup`, so the original surfaces no longer anchor the product. + +## What Is Worth Preserving +Preserve only reusable copy, sequencing, or setup checklists that still improve the newer release and topology flows. + +## Likely Successor Or Merge Target +/releases, /ops/platform-setup, and /setup/topology + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/S00_route_deprecation_map.md](../../../../../../v2-rewire/S00_route_deprecation_map.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/ReleaseControlSetupHomeComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/ReleaseControlSetupHomeComponent.md new file mode 100644 index 000000000..c6a563779 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/ReleaseControlSetupHomeComponent.md @@ -0,0 +1,47 @@ +# ReleaseControlSetupHomeComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `archive` +- Preservation value: `low` +- Feature branch: `Release Control Legacy` +- Source: `features/release-control/setup/release-control-setup-home.component.ts` +- Selector: `app-release-control-setup-home` + +## What Is It? +Release Control Setup Home appears to be a landing or overview surface in the Release Control / Setup area. + +## Why It Likely Fell Out Of The Product +The canonical IA now redirects old `release-control/*` concepts into `/releases`, `/ops`, and `/setup`, so the original surfaces no longer anchor the product. + +## What Is Worth Preserving +Preserve only reusable copy, sequencing, or setup checklists that still improve the newer release and topology flows. + +## Likely Successor Or Merge Target +/releases, /ops/platform-setup, and /setup/topology + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/S00_route_deprecation_map.md](../../../../../../v2-rewire/S00_route_deprecation_map.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupBundleTemplatesComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupBundleTemplatesComponent.md new file mode 100644 index 000000000..8d5a850de --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupBundleTemplatesComponent.md @@ -0,0 +1,47 @@ +# SetupBundleTemplatesComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `archive` +- Preservation value: `low` +- Feature branch: `Release Control Legacy` +- Source: `features/release-control/setup/setup-bundle-templates.component.ts` +- Selector: `app-setup-bundle-templates` + +## What Is It? +Setup Bundle Templates appears to be a setup or guided workflow surface in the Release Control / Setup area. + +## Why It Likely Fell Out Of The Product +The canonical IA now redirects old `release-control/*` concepts into `/releases`, `/ops`, and `/setup`, so the original surfaces no longer anchor the product. + +## What Is Worth Preserving +Preserve only reusable copy, sequencing, or setup checklists that still improve the newer release and topology flows. + +## Likely Successor Or Merge Target +/releases, /ops/platform-setup, and /setup/topology + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/S00_route_deprecation_map.md](../../../../../../v2-rewire/S00_route_deprecation_map.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupEnvironmentsPathsComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupEnvironmentsPathsComponent.md new file mode 100644 index 000000000..c4eacfddf --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupEnvironmentsPathsComponent.md @@ -0,0 +1,47 @@ +# SetupEnvironmentsPathsComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `archive` +- Preservation value: `low` +- Feature branch: `Release Control Legacy` +- Source: `features/release-control/setup/setup-environments-paths.component.ts` +- Selector: `app-setup-environments-paths` + +## What Is It? +Setup Environments Paths appears to be a setup or guided workflow surface in the Release Control / Setup area. + +## Why It Likely Fell Out Of The Product +The canonical IA now redirects old `release-control/*` concepts into `/releases`, `/ops`, and `/setup`, so the original surfaces no longer anchor the product. + +## What Is Worth Preserving +Preserve only reusable copy, sequencing, or setup checklists that still improve the newer release and topology flows. + +## Likely Successor Or Merge Target +/releases, /ops/platform-setup, and /setup/topology + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/S00_route_deprecation_map.md](../../../../../../v2-rewire/S00_route_deprecation_map.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupTargetsAgentsComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupTargetsAgentsComponent.md new file mode 100644 index 000000000..614c4273c --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupTargetsAgentsComponent.md @@ -0,0 +1,47 @@ +# SetupTargetsAgentsComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `archive` +- Preservation value: `low` +- Feature branch: `Release Control Legacy` +- Source: `features/release-control/setup/setup-targets-agents.component.ts` +- Selector: `app-setup-targets-agents` + +## What Is It? +Setup Targets Agents appears to be a setup or guided workflow surface in the Release Control / Setup area. + +## Why It Likely Fell Out Of The Product +The canonical IA now redirects old `release-control/*` concepts into `/releases`, `/ops`, and `/setup`, so the original surfaces no longer anchor the product. + +## What Is Worth Preserving +Preserve only reusable copy, sequencing, or setup checklists that still improve the newer release and topology flows. + +## Likely Successor Or Merge Target +/releases, /ops/platform-setup, and /setup/topology + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/S00_route_deprecation_map.md](../../../../../../v2-rewire/S00_route_deprecation_map.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupWorkflowsComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupWorkflowsComponent.md new file mode 100644 index 000000000..d45eb6afb --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-control/setup/SetupWorkflowsComponent.md @@ -0,0 +1,47 @@ +# SetupWorkflowsComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `archive` +- Preservation value: `low` +- Feature branch: `Release Control Legacy` +- Source: `features/release-control/setup/setup-workflows.component.ts` +- Selector: `app-setup-workflows` + +## What Is It? +Setup Workflows appears to be a setup or guided workflow surface in the Release Control / Setup area. + +## Why It Likely Fell Out Of The Product +The canonical IA now redirects old `release-control/*` concepts into `/releases`, `/ops`, and `/setup`, so the original surfaces no longer anchor the product. + +## What Is Worth Preserving +Preserve only reusable copy, sequencing, or setup checklists that still improve the newer release and topology flows. + +## Likely Successor Or Merge Target +/releases, /ops/platform-setup, and /setup/topology + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/S00_route_deprecation_map.md](../../../../../../v2-rewire/S00_route_deprecation_map.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/approvals/promotion-request/PromotionRequestComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/approvals/promotion-request/PromotionRequestComponent.md new file mode 100644 index 000000000..3dd2ed49c --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/approvals/promotion-request/PromotionRequestComponent.md @@ -0,0 +1,47 @@ +# PromotionRequestComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Release Orchestrator` +- Source: `features/release-orchestrator/approvals/promotion-request/promotion-request.component.ts` +- Selector: `app-promotion-request` + +## What Is It? +Promotion Request appears to be a dedicated feature surface in the Release Orchestrator / Approvals / Promotion Request area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/dashboard/ReleaseDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/dashboard/ReleaseDashboardComponent.md new file mode 100644 index 000000000..d6ec48d08 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/dashboard/ReleaseDashboardComponent.md @@ -0,0 +1,47 @@ +# ReleaseDashboardComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Release Orchestrator` +- Source: `features/release-orchestrator/dashboard/dashboard.component.ts` +- Selector: `app-release-dashboard` + +## What Is It? +Release Dashboard appears to be a landing or overview surface in the Release Orchestrator / Dashboard area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/deployments/deployment-list/DeploymentListComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/deployments/deployment-list/DeploymentListComponent.md new file mode 100644 index 000000000..83910053f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/deployments/deployment-list/DeploymentListComponent.md @@ -0,0 +1,47 @@ +# DeploymentListComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Release Orchestrator` +- Source: `features/release-orchestrator/deployments/deployment-list/deployment-list.component.ts` +- Selector: `app-deployment-list` + +## What Is It? +Deployment List appears to be a dedicated feature surface in the Release Orchestrator / Deployments / Deployment List area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/deployments/deployment-monitor/DeploymentMonitorComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/deployments/deployment-monitor/DeploymentMonitorComponent.md new file mode 100644 index 000000000..5099bc106 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/deployments/deployment-monitor/DeploymentMonitorComponent.md @@ -0,0 +1,47 @@ +# DeploymentMonitorComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Release Orchestrator` +- Source: `features/release-orchestrator/deployments/deployment-monitor/deployment-monitor.component.ts` +- Selector: `app-deployment-monitor` + +## What Is It? +Deployment Monitor appears to be a dedicated feature surface in the Release Orchestrator / Deployments / Deployment Monitor area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/components/environment-settings/EnvironmentSettingsComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/components/environment-settings/EnvironmentSettingsComponent.md new file mode 100644 index 000000000..24ffb7499 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/components/environment-settings/EnvironmentSettingsComponent.md @@ -0,0 +1,47 @@ +# EnvironmentSettingsComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Release Orchestrator` +- Source: `features/release-orchestrator/environments/components/environment-settings/environment-settings.component.ts` +- Selector: `app-environment-settings` + +## What Is It? +Environment Settings appears to be a dedicated feature surface in the Release Orchestrator / Environments / Components / Environment Settings area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/components/freeze-window-editor/FreezeWindowEditorComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/components/freeze-window-editor/FreezeWindowEditorComponent.md new file mode 100644 index 000000000..d7c01a99f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/components/freeze-window-editor/FreezeWindowEditorComponent.md @@ -0,0 +1,47 @@ +# FreezeWindowEditorComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Release Orchestrator` +- Source: `features/release-orchestrator/environments/components/freeze-window-editor/freeze-window-editor.component.ts` +- Selector: `app-freeze-window-editor` + +## What Is It? +Freeze Window Editor appears to be a authoring or editing surface in the Release Orchestrator / Environments / Components / Freeze Window Editor area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/components/target-list/TargetListComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/components/target-list/TargetListComponent.md new file mode 100644 index 000000000..3217525c4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/components/target-list/TargetListComponent.md @@ -0,0 +1,47 @@ +# TargetListComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Release Orchestrator` +- Source: `features/release-orchestrator/environments/components/target-list/target-list.component.ts` +- Selector: `app-target-list` + +## What Is It? +Target List appears to be a dedicated feature surface in the Release Orchestrator / Environments / Components / Target List area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/environment-list/EnvironmentListComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/environment-list/EnvironmentListComponent.md new file mode 100644 index 000000000..d91e50876 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/environments/environment-list/EnvironmentListComponent.md @@ -0,0 +1,47 @@ +# EnvironmentListComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Release Orchestrator` +- Source: `features/release-orchestrator/environments/environment-list/environment-list.component.ts` +- Selector: `app-environment-list` + +## What Is It? +Environment List appears to be a dedicated feature surface in the Release Orchestrator / Environments / Environment List area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/evidence/evidence-detail/EvidenceDetailComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/evidence/evidence-detail/EvidenceDetailComponent.md new file mode 100644 index 000000000..fdaf98568 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/evidence/evidence-detail/EvidenceDetailComponent.md @@ -0,0 +1,47 @@ +# EvidenceDetailComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Release Orchestrator` +- Source: `features/release-orchestrator/evidence/evidence-detail/evidence-detail.component.ts` +- Selector: `so-evidence-detail` + +## What Is It? +Evidence Detail appears to be a detail panel or supporting drill-down surface in the Release Orchestrator / Evidence / Evidence Detail area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/evidence/evidence-list/EvidenceListComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/evidence/evidence-list/EvidenceListComponent.md new file mode 100644 index 000000000..b66bb36e3 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/evidence/evidence-list/EvidenceListComponent.md @@ -0,0 +1,47 @@ +# EvidenceListComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Release Orchestrator` +- Source: `features/release-orchestrator/evidence/evidence-list/evidence-list.component.ts` +- Selector: `so-evidence-list` + +## What Is It? +Evidence List appears to be a dedicated feature surface in the Release Orchestrator / Evidence / Evidence List area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/runs/PipelineRunDetailComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/runs/PipelineRunDetailComponent.md new file mode 100644 index 000000000..41d437ddd --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/runs/PipelineRunDetailComponent.md @@ -0,0 +1,47 @@ +# PipelineRunDetailComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Release Orchestrator` +- Source: `features/release-orchestrator/runs/pipeline-run-detail.component.ts` +- Selector: `app-pipeline-run-detail` + +## What Is It? +Pipeline Run Detail appears to be a detail panel or supporting drill-down surface in the Release Orchestrator / Runs area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/runs/PipelineRunsListComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/runs/PipelineRunsListComponent.md new file mode 100644 index 000000000..f6f1b4b3b --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/release-orchestrator/runs/PipelineRunsListComponent.md @@ -0,0 +1,47 @@ +# PipelineRunsListComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Release Orchestrator` +- Source: `features/release-orchestrator/runs/pipeline-runs-list.component.ts` +- Selector: `app-pipeline-runs-list` + +## What Is It? +Pipeline Runs List appears to be a dedicated feature surface in the Release Orchestrator / Runs area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/releases/ReleaseDetailPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/releases/ReleaseDetailPageComponent.md new file mode 100644 index 000000000..4ca9a969d --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/releases/ReleaseDetailPageComponent.md @@ -0,0 +1,47 @@ +# ReleaseDetailPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Releases` +- Source: `features/releases/release-detail-page.component.ts` +- Selector: `app-release-detail-page` + +## What Is It? +Release Detail Page appears to be a detail panel or supporting drill-down surface in the Releases area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/releases/ReleasesListPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/releases/ReleasesListPageComponent.md new file mode 100644 index 000000000..3f98493fb --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/releases/ReleasesListPageComponent.md @@ -0,0 +1,47 @@ +# ReleasesListPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Releases` +- Source: `features/releases/releases-list-page.component.ts` +- Selector: `app-releases-list-page` + +## What Is It? +Releases List Page appears to be a dedicated feature surface in the Releases area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/scores/ScoreComparisonComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/scores/ScoreComparisonComponent.md new file mode 100644 index 000000000..82736bfb8 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/scores/ScoreComparisonComponent.md @@ -0,0 +1,47 @@ +# ScoreComparisonComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Scores` +- Source: `features/scores/score-comparison.component.ts` +- Selector: `stella-score-comparison` + +## What Is It? +Score Comparison appears to be a dedicated feature surface in the Scores area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/security-risk/remediation/RemediationFixesBadgeComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/security-risk/remediation/RemediationFixesBadgeComponent.md new file mode 100644 index 000000000..011e8a46d --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/security-risk/remediation/RemediationFixesBadgeComponent.md @@ -0,0 +1,47 @@ +# RemediationFixesBadgeComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Security Risk` +- Source: `features/security-risk/remediation/remediation-fixes-badge.component.ts` +- Selector: `app-remediation-fixes-badge` + +## What Is It? +Remediation Fixes Badge appears to be a dedicated feature surface in the Security Risk / Remediation area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/security/ArtifactDetailPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/security/ArtifactDetailPageComponent.md new file mode 100644 index 000000000..2294d33a5 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/security/ArtifactDetailPageComponent.md @@ -0,0 +1,47 @@ +# ArtifactDetailPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Security` +- Source: `features/security/artifact-detail-page.component.ts` +- Selector: `app-artifact-detail-page` + +## What Is It? +Artifact Detail Page appears to be a detail panel or supporting drill-down surface in the Security area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/security/ArtifactsPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/security/ArtifactsPageComponent.md new file mode 100644 index 000000000..8656e799a --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/security/ArtifactsPageComponent.md @@ -0,0 +1,47 @@ +# ArtifactsPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Security` +- Source: `features/security/artifacts-page.component.ts` +- Selector: `app-artifacts-page` + +## What Is It? +Artifacts Page appears to be a dedicated feature surface in the Security area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/security/ExceptionDetailPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/security/ExceptionDetailPageComponent.md new file mode 100644 index 000000000..f76feb786 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/security/ExceptionDetailPageComponent.md @@ -0,0 +1,47 @@ +# ExceptionDetailPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Security` +- Source: `features/security/exception-detail-page.component.ts` +- Selector: `app-exception-detail-page` + +## What Is It? +Exception Detail Page appears to be a detail panel or supporting drill-down surface in the Security area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/security/LineagePageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/security/LineagePageComponent.md new file mode 100644 index 000000000..5a04f72b6 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/security/LineagePageComponent.md @@ -0,0 +1,47 @@ +# LineagePageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Security` +- Source: `features/security/lineage-page.component.ts` +- Selector: `app-lineage-page` + +## What Is It? +Lineage Page appears to be a dedicated feature surface in the Security area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/security/PatchMapPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/security/PatchMapPageComponent.md new file mode 100644 index 000000000..6d9540e1e --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/security/PatchMapPageComponent.md @@ -0,0 +1,47 @@ +# PatchMapPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Security` +- Source: `features/security/patch-map-page.component.ts` +- Selector: `app-patch-map-page` + +## What Is It? +Patch Map Page appears to be a dedicated feature surface in the Security area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/security/ReachabilityPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/security/ReachabilityPageComponent.md new file mode 100644 index 000000000..c25b9d2be --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/security/ReachabilityPageComponent.md @@ -0,0 +1,47 @@ +# ReachabilityPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Security` +- Source: `features/security/reachability-page.component.ts` +- Selector: `app-reachability-page` + +## What Is It? +Reachability Page appears to be a dedicated feature surface in the Security area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/security/RiskPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/security/RiskPageComponent.md new file mode 100644 index 000000000..7990c8d20 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/security/RiskPageComponent.md @@ -0,0 +1,47 @@ +# RiskPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Security` +- Source: `features/security/risk-page.component.ts` +- Selector: `app-risk-page` + +## What Is It? +Risk Page appears to be a dedicated feature surface in the Security area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/security/SecurityComponentDetailPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/security/SecurityComponentDetailPageComponent.md new file mode 100644 index 000000000..1adf2c1dd --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/security/SecurityComponentDetailPageComponent.md @@ -0,0 +1,47 @@ +# SecurityComponentDetailPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Security` +- Source: `features/security/security-component-detail-page.component.ts` +- Selector: `app-security-component-detail-page` + +## What Is It? +Security Component Detail Page appears to be a detail panel or supporting drill-down surface in the Security area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/security/SecurityEnvironmentRiskDetailPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/security/SecurityEnvironmentRiskDetailPageComponent.md new file mode 100644 index 000000000..b3dcd0dfd --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/security/SecurityEnvironmentRiskDetailPageComponent.md @@ -0,0 +1,47 @@ +# SecurityEnvironmentRiskDetailPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Security` +- Source: `features/security/security-environment-risk-detail-page.component.ts` +- Selector: `app-security-environment-risk-detail-page` + +## What Is It? +Security Environment Risk Detail Page appears to be a detail panel or supporting drill-down surface in the Security area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/security/SecurityOverviewPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/security/SecurityOverviewPageComponent.md new file mode 100644 index 000000000..6e91eca3a --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/security/SecurityOverviewPageComponent.md @@ -0,0 +1,47 @@ +# SecurityOverviewPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Security` +- Source: `features/security/security-overview-page.component.ts` +- Selector: `app-security-overview-page` + +## What Is It? +Security Overview Page appears to be a landing or overview surface in the Security area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/security/UnknownsPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/security/UnknownsPageComponent.md new file mode 100644 index 000000000..e2ba52879 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/security/UnknownsPageComponent.md @@ -0,0 +1,47 @@ +# UnknownsPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Security` +- Source: `features/security/unknowns-page.component.ts` +- Selector: `app-unknowns-page` + +## What Is It? +Unknowns Page appears to be a dedicated feature surface in the Security area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/security/VexHubPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/security/VexHubPageComponent.md new file mode 100644 index 000000000..c4780c1ff --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/security/VexHubPageComponent.md @@ -0,0 +1,47 @@ +# VexHubPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Security` +- Source: `features/security/vex-hub-page.component.ts` +- Selector: `app-vex-hub-page` + +## What Is It? +Vex Hub Page appears to be a dedicated feature surface in the Security area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/security/VulnerabilitiesPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/security/VulnerabilitiesPageComponent.md new file mode 100644 index 000000000..b0c202a83 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/security/VulnerabilitiesPageComponent.md @@ -0,0 +1,47 @@ +# VulnerabilitiesPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Security` +- Source: `features/security/vulnerabilities-page.component.ts` +- Selector: `app-vulnerabilities-page` + +## What Is It? +Vulnerabilities Page appears to be a dedicated feature surface in the Security area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/settings/DeterminizationConfigPaneComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/settings/DeterminizationConfigPaneComponent.md new file mode 100644 index 000000000..2fcd3a9e4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/settings/DeterminizationConfigPaneComponent.md @@ -0,0 +1,47 @@ +# DeterminizationConfigPaneComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Settings` +- Source: `features/settings/determinization-config-pane.component.ts` +- Selector: `stella-determinization-config-pane` + +## What Is It? +Determinization Config Pane appears to be a dedicated feature surface in the Settings area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/settings/RemediationPrSettingsComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/settings/RemediationPrSettingsComponent.md new file mode 100644 index 000000000..106cdc3aa --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/settings/RemediationPrSettingsComponent.md @@ -0,0 +1,47 @@ +# RemediationPrSettingsComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Settings` +- Source: `features/settings/remediation-pr-settings.component.ts` +- Selector: `stella-remediation-pr-settings` + +## What Is It? +Remediation Pr Settings appears to be a dedicated feature surface in the Settings area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloAlertListComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloAlertListComponent.md new file mode 100644 index 000000000..2a7ef301d --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloAlertListComponent.md @@ -0,0 +1,47 @@ +# SloAlertListComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Slo Monitoring` +- Source: `features/slo-monitoring/slo-alert-list.component.ts` +- Selector: `app-slo-alert-list` + +## What Is It? +Slo Alert List appears to be a monitoring and alerting surface in the Slo Monitoring area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloDashboardComponent.md new file mode 100644 index 000000000..6b5c45fad --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloDashboardComponent.md @@ -0,0 +1,47 @@ +# SloDashboardComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Slo Monitoring` +- Source: `features/slo-monitoring/slo-dashboard.component.ts` +- Selector: `app-slo-dashboard` + +## What Is It? +Slo Dashboard appears to be a landing or overview surface in the Slo Monitoring area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloDefinitionsComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloDefinitionsComponent.md new file mode 100644 index 000000000..72c53a1fb --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloDefinitionsComponent.md @@ -0,0 +1,47 @@ +# SloDefinitionsComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Slo Monitoring` +- Source: `features/slo-monitoring/slo-definitions.component.ts` +- Selector: `app-slo-definitions` + +## What Is It? +Slo Definitions appears to be a dedicated feature surface in the Slo Monitoring area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloDetailComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloDetailComponent.md new file mode 100644 index 000000000..3c921756b --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/slo-monitoring/SloDetailComponent.md @@ -0,0 +1,47 @@ +# SloDetailComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Slo Monitoring` +- Source: `features/slo-monitoring/slo-detail.component.ts` +- Selector: `app-slo-detail` + +## What Is It? +Slo Detail appears to be a detail panel or supporting drill-down surface in the Slo Monitoring area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/snapshot/components/snapshot-panel/SnapshotPanelComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/snapshot/components/snapshot-panel/SnapshotPanelComponent.md new file mode 100644 index 000000000..d919eb1f4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/snapshot/components/snapshot-panel/SnapshotPanelComponent.md @@ -0,0 +1,47 @@ +# SnapshotPanelComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Snapshot` +- Source: `features/snapshot/components/snapshot-panel/snapshot-panel.component.ts` +- Selector: `app-snapshot-panel` + +## What Is It? +Snapshot Panel appears to be a detail panel or supporting drill-down surface in the Snapshot / Components / Snapshot Panel area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/timeline/pages/timeline-page/TimelinePageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/timeline/pages/timeline-page/TimelinePageComponent.md new file mode 100644 index 000000000..73cfffcfd --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/timeline/pages/timeline-page/TimelinePageComponent.md @@ -0,0 +1,47 @@ +# TimelinePageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Timeline` +- Source: `features/timeline/pages/timeline-page/timeline-page.component.ts` +- Selector: `app-timeline-page` + +## What Is It? +Timeline Page appears to be a visualization or exploration surface in the Timeline / Pages / Timeline Page area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/triage-inbox/TriageInboxComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/triage-inbox/TriageInboxComponent.md new file mode 100644 index 000000000..a4f5f4e58 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/triage-inbox/TriageInboxComponent.md @@ -0,0 +1,47 @@ +# TriageInboxComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Triage Inbox` +- Source: `features/triage-inbox/triage-inbox.component.ts` +- Selector: `app-triage-inbox` + +## What Is It? +Triage Inbox appears to be a dedicated feature surface in the Triage Inbox area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/triage/AiRecommendationWorkbenchComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/triage/AiRecommendationWorkbenchComponent.md new file mode 100644 index 000000000..6818b55be --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/triage/AiRecommendationWorkbenchComponent.md @@ -0,0 +1,47 @@ +# AiRecommendationWorkbenchComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Triage Workbench` +- Source: `features/triage/ai-recommendation-workbench.component.ts` +- Selector: `stellaops-ai-recommendation-workbench` + +## What Is It? +Ai Recommendation Workbench appears to be a dedicated feature surface in the Triage area. + +## Why It Likely Fell Out Of The Product +Several triage surfaces read as design experiments that were never folded cleanly into the main artifact workspace. + +## What Is Worth Preserving +Keep any explainability, quiet-lane, or audit-bundle interactions that meaningfully shorten operator triage loops. + +## Likely Successor Or Merge Target +/triage/artifacts or /evidence + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/triage/QuietLaneWorkbenchComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/triage/QuietLaneWorkbenchComponent.md new file mode 100644 index 000000000..c533caeb2 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/triage/QuietLaneWorkbenchComponent.md @@ -0,0 +1,47 @@ +# QuietLaneWorkbenchComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Triage Workbench` +- Source: `features/triage/quiet-lane-workbench.component.ts` +- Selector: `stellaops-quiet-lane-workbench` + +## What Is It? +Quiet Lane Workbench appears to be a dedicated feature surface in the Triage area. + +## Why It Likely Fell Out Of The Product +Several triage surfaces read as design experiments that were never folded cleanly into the main artifact workspace. + +## What Is Worth Preserving +Keep any explainability, quiet-lane, or audit-bundle interactions that meaningfully shorten operator triage loops. + +## Likely Successor Or Merge Target +/triage/artifacts or /evidence + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/triage/ReasonCapsuleWorkbenchComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/triage/ReasonCapsuleWorkbenchComponent.md new file mode 100644 index 000000000..5e0adde46 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/triage/ReasonCapsuleWorkbenchComponent.md @@ -0,0 +1,47 @@ +# ReasonCapsuleWorkbenchComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Triage Workbench` +- Source: `features/triage/reason-capsule-workbench.component.ts` +- Selector: `stellaops-reason-capsule-workbench` + +## What Is It? +Reason Capsule Workbench appears to be a dedicated feature surface in the Triage area. + +## Why It Likely Fell Out Of The Product +Several triage surfaces read as design experiments that were never folded cleanly into the main artifact workspace. + +## What Is Worth Preserving +Keep any explainability, quiet-lane, or audit-bundle interactions that meaningfully shorten operator triage loops. + +## Likely Successor Or Merge Target +/triage/artifacts or /evidence + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/triage/TriageAuditBundleNewComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/triage/TriageAuditBundleNewComponent.md new file mode 100644 index 000000000..c3784cf55 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/triage/TriageAuditBundleNewComponent.md @@ -0,0 +1,47 @@ +# TriageAuditBundleNewComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Triage Workbench` +- Source: `features/triage/triage-audit-bundle-new.component.ts` +- Selector: `app-triage-audit-bundle-new` + +## What Is It? +Triage Audit Bundle New appears to be a audit and evidence surface in the Triage area. + +## Why It Likely Fell Out Of The Product +Several triage surfaces read as design experiments that were never folded cleanly into the main artifact workspace. + +## What Is Worth Preserving +Keep any explainability, quiet-lane, or audit-bundle interactions that meaningfully shorten operator triage loops. + +## Likely Successor Or Merge Target +/triage/artifacts or /evidence + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/triage/TriageAuditBundlesComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/triage/TriageAuditBundlesComponent.md new file mode 100644 index 000000000..3ab47cd28 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/triage/TriageAuditBundlesComponent.md @@ -0,0 +1,47 @@ +# TriageAuditBundlesComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Triage Workbench` +- Source: `features/triage/triage-audit-bundles.component.ts` +- Selector: `app-triage-audit-bundles` + +## What Is It? +Triage Audit Bundles appears to be a audit and evidence surface in the Triage area. + +## Why It Likely Fell Out Of The Product +Several triage surfaces read as design experiments that were never folded cleanly into the main artifact workspace. + +## What Is Worth Preserving +Keep any explainability, quiet-lane, or audit-bundle interactions that meaningfully shorten operator triage loops. + +## Likely Successor Or Merge Target +/triage/artifacts or /evidence + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/triage/components/ai-code-guard-badge/AiCodeGuardBadgeComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/triage/components/ai-code-guard-badge/AiCodeGuardBadgeComponent.md new file mode 100644 index 000000000..8ac13721f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/triage/components/ai-code-guard-badge/AiCodeGuardBadgeComponent.md @@ -0,0 +1,47 @@ +# AiCodeGuardBadgeComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Triage Workbench` +- Source: `features/triage/components/ai-code-guard-badge/ai-code-guard-badge.component.ts` +- Selector: `app-ai-code-guard-badge` + +## What Is It? +Ai Code Guard Badge appears to be a dedicated feature surface in the Triage / Components / Ai Code Guard Badge area. + +## Why It Likely Fell Out Of The Product +Several triage surfaces read as design experiments that were never folded cleanly into the main artifact workspace. + +## What Is Worth Preserving +Keep any explainability, quiet-lane, or audit-bundle interactions that meaningfully shorten operator triage loops. + +## Likely Successor Or Merge Target +/triage/artifacts or /evidence + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/triage/components/snapshot-viewer/SnapshotViewerComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/triage/components/snapshot-viewer/SnapshotViewerComponent.md new file mode 100644 index 000000000..0235d7cb5 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/triage/components/snapshot-viewer/SnapshotViewerComponent.md @@ -0,0 +1,47 @@ +# SnapshotViewerComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Triage Workbench` +- Source: `features/triage/components/snapshot-viewer/snapshot-viewer.component.ts` +- Selector: `stella-snapshot-viewer` + +## What Is It? +Snapshot Viewer appears to be a dedicated feature surface in the Triage / Components / Snapshot Viewer area. + +## Why It Likely Fell Out Of The Product +Several triage surfaces read as design experiments that were never folded cleanly into the main artifact workspace. + +## What Is Worth Preserving +Keep any explainability, quiet-lane, or audit-bundle interactions that meaningfully shorten operator triage loops. + +## Likely Successor Or Merge Target +/triage/artifacts or /evidence + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/triage/components/unknowns-list/UnknownsListComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/triage/components/unknowns-list/UnknownsListComponent.md new file mode 100644 index 000000000..16a9b6804 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/triage/components/unknowns-list/UnknownsListComponent.md @@ -0,0 +1,47 @@ +# UnknownsListComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Triage Workbench` +- Source: `features/triage/components/unknowns-list/unknowns-list.component.ts` +- Selector: `app-unknowns-list` + +## What Is It? +Unknowns List appears to be a dedicated feature surface in the Triage / Components / Unknowns List area. + +## Why It Likely Fell Out Of The Product +Several triage surfaces read as design experiments that were never folded cleanly into the main artifact workspace. + +## What Is Worth Preserving +Keep any explainability, quiet-lane, or audit-bundle interactions that meaningfully shorten operator triage loops. + +## Likely Successor Or Merge Target +/triage/artifacts or /evidence + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/unknowns/UnknownsBudgetWidgetComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/unknowns/UnknownsBudgetWidgetComponent.md new file mode 100644 index 000000000..32c526cf4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/unknowns/UnknownsBudgetWidgetComponent.md @@ -0,0 +1,47 @@ +# UnknownsBudgetWidgetComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Unknowns` +- Source: `features/unknowns/unknowns-budget-widget.component.ts` +- Selector: `stella-unknowns-budget-widget` + +## What Is It? +Unknowns Budget Widget appears to be a dedicated feature surface in the Unknowns area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/vex-studio/VexConflictStudioComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/vex-studio/VexConflictStudioComponent.md new file mode 100644 index 000000000..60ddf32b5 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/vex-studio/VexConflictStudioComponent.md @@ -0,0 +1,47 @@ +# VexConflictStudioComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `merge` +- Preservation value: `high` +- Feature branch: `VEX Studio` +- Source: `features/vex-studio/vex-conflict-studio.component.ts` +- Selector: `stella-vex-conflict-studio` + +## What Is It? +Vex Conflict Studio appears to be a dedicated feature surface in the Vex Studio area. + +## Why It Likely Fell Out Of The Product +The standalone studio is not mounted, but related VEX concepts and data structures still appear to matter elsewhere. + +## What Is Worth Preserving +Keep conflict resolution workflows, rationale capture, and consensus tooling that could strengthen VEX Hub. + +## Likely Successor Or Merge Target +/admin/vex-hub + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/citation-link/CitationLinkComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/citation-link/CitationLinkComponent.md new file mode 100644 index 000000000..0cde24792 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/citation-link/CitationLinkComponent.md @@ -0,0 +1,47 @@ +# CitationLinkComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Vuln Explorer` +- Source: `features/vuln-explorer/components/citation-link/citation-link.component.ts` +- Selector: `app-citation-link` + +## What Is It? +Citation Link appears to be a dedicated feature surface in the Vuln Explorer / Components / Citation Link area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/citation-link/CitationListComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/citation-link/CitationListComponent.md new file mode 100644 index 000000000..b6c1ed443 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/citation-link/CitationListComponent.md @@ -0,0 +1,47 @@ +# CitationListComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Vuln Explorer` +- Source: `features/vuln-explorer/components/citation-link/citation-link.component.ts` +- Selector: `app-citation-list` + +## What Is It? +Citation List appears to be a dedicated feature surface in the Vuln Explorer / Components / Citation Link area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/evidence-tree/EvidenceTreeComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/evidence-tree/EvidenceTreeComponent.md new file mode 100644 index 000000000..04674ea08 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/evidence-tree/EvidenceTreeComponent.md @@ -0,0 +1,47 @@ +# EvidenceTreeComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Vuln Explorer` +- Source: `features/vuln-explorer/components/evidence-tree/evidence-tree.component.ts` +- Selector: `app-evidence-tree` + +## What Is It? +Evidence Tree appears to be a dedicated feature surface in the Vuln Explorer / Components / Evidence Tree area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/filter-preset-pills/FilterPresetPillsComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/filter-preset-pills/FilterPresetPillsComponent.md new file mode 100644 index 000000000..578520b05 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/filter-preset-pills/FilterPresetPillsComponent.md @@ -0,0 +1,47 @@ +# FilterPresetPillsComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Vuln Explorer` +- Source: `features/vuln-explorer/components/filter-preset-pills/filter-preset-pills.component.ts` +- Selector: `app-filter-preset-pills` + +## What Is It? +Filter Preset Pills appears to be a dedicated feature surface in the Vuln Explorer / Components / Filter Preset Pills area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/triage-card/TriageCardGridComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/triage-card/TriageCardGridComponent.md new file mode 100644 index 000000000..41759508a --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/triage-card/TriageCardGridComponent.md @@ -0,0 +1,47 @@ +# TriageCardGridComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Vuln Explorer` +- Source: `features/vuln-explorer/components/triage-card/triage-card.component.ts` +- Selector: `app-triage-card-grid` + +## What Is It? +Triage Card Grid appears to be a dedicated feature surface in the Vuln Explorer / Components / Triage Card area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/triage-filters/TriageFiltersComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/triage-filters/TriageFiltersComponent.md new file mode 100644 index 000000000..957fbf3d9 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/triage-filters/TriageFiltersComponent.md @@ -0,0 +1,47 @@ +# TriageFiltersComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Vuln Explorer` +- Source: `features/vuln-explorer/components/triage-filters/triage-filters.component.ts` +- Selector: `app-triage-filters` + +## What Is It? +Triage Filters appears to be a dedicated feature surface in the Vuln Explorer / Components / Triage Filters area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/verdict-explanation/VerdictExplanationComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/verdict-explanation/VerdictExplanationComponent.md new file mode 100644 index 000000000..d3c763b6a --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/vuln-explorer/components/verdict-explanation/VerdictExplanationComponent.md @@ -0,0 +1,47 @@ +# VerdictExplanationComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Vuln Explorer` +- Source: `features/vuln-explorer/components/verdict-explanation/verdict-explanation.component.ts` +- Selector: `app-verdict-explanation` + +## What Is It? +Verdict Explanation appears to be a dedicated feature surface in the Vuln Explorer / Components / Verdict Explanation area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/vulnerabilities/VulnerabilityDetailComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/vulnerabilities/VulnerabilityDetailComponent.md new file mode 100644 index 000000000..fb21fe599 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/vulnerabilities/VulnerabilityDetailComponent.md @@ -0,0 +1,47 @@ +# VulnerabilityDetailComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Vulnerabilities` +- Source: `features/vulnerabilities/vulnerability-detail.component.ts` +- Selector: `st-vulnerability-detail` + +## What Is It? +Vulnerability Detail appears to be a detail panel or supporting drill-down surface in the Vulnerabilities area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/vulnerabilities/components/vuln-triage-dashboard/VulnTriageDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/vulnerabilities/components/vuln-triage-dashboard/VulnTriageDashboardComponent.md new file mode 100644 index 000000000..4b3d5135a --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/vulnerabilities/components/vuln-triage-dashboard/VulnTriageDashboardComponent.md @@ -0,0 +1,47 @@ +# VulnTriageDashboardComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Vulnerabilities` +- Source: `features/vulnerabilities/components/vuln-triage-dashboard/vuln-triage-dashboard.component.ts` +- Selector: `app-vuln-triage-dashboard` + +## What Is It? +Vuln Triage Dashboard appears to be a landing or overview surface in the Vulnerabilities / Components / Vuln Triage Dashboard area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/watchlist/WatchlistPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/watchlist/WatchlistPageComponent.md new file mode 100644 index 000000000..a2fb9127b --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/watchlist/WatchlistPageComponent.md @@ -0,0 +1,47 @@ +# WatchlistPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `wire-in` +- Preservation value: `high` +- Feature branch: `Watchlist` +- Source: `features/watchlist/watchlist-page.component.ts` +- Selector: `app-watchlist-page` + +## What Is It? +Watchlist Page appears to be a monitoring and alerting surface in the Watchlist area. + +## Why It Likely Fell Out Of The Product +The feature appears partially implemented but never surfaced in the current route tree or menu. + +## What Is Worth Preserving +Keep the operational watchlist concept, status views, and monitoring workflows; this looks closer to productizable than many other dead branches. + +## Likely Successor Or Merge Target +/mission-control or /ops + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/operations/watchlist-monitoring-runbook.md](../../../../../../../operations/watchlist-monitoring-runbook.md) +- [docs/modules/platform/architecture-overview.md](../../../../../../platform/architecture-overview.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/workflow-visualization/components/step-detail-panel/StepDetailPanelComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/workflow-visualization/components/step-detail-panel/StepDetailPanelComponent.md new file mode 100644 index 000000000..5539d469f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/workflow-visualization/components/step-detail-panel/StepDetailPanelComponent.md @@ -0,0 +1,47 @@ +# StepDetailPanelComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Workflow Visualization Prototype` +- Source: `features/workflow-visualization/components/step-detail-panel/step-detail-panel.component.ts` +- Selector: `app-step-detail-panel` + +## What Is It? +Step Detail Panel appears to be a detail panel or supporting drill-down surface in the Workflow Visualization / Components / Step Detail Panel area. + +## Why It Likely Fell Out Of The Product +The route file exists, but nothing mounts the workflow visualization branch in the active shell. + +## What Is Worth Preserving +Keep the timeline, step-diff, and replay ideas if they can strengthen evidence or release run introspection. + +## Likely Successor Or Merge Target +/evidence or /releases/runs + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) +- [docs/modules/platform/architecture-overview.md](../../../../../../../../platform/architecture-overview.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/workflow-visualization/components/time-travel-controls/TimeTravelControlsComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/workflow-visualization/components/time-travel-controls/TimeTravelControlsComponent.md new file mode 100644 index 000000000..784b346b1 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/workflow-visualization/components/time-travel-controls/TimeTravelControlsComponent.md @@ -0,0 +1,47 @@ +# TimeTravelControlsComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Workflow Visualization Prototype` +- Source: `features/workflow-visualization/components/time-travel-controls/time-travel-controls.component.ts` +- Selector: `app-time-travel-controls` + +## What Is It? +Time Travel Controls appears to be a dedicated feature surface in the Workflow Visualization / Components / Time Travel Controls area. + +## Why It Likely Fell Out Of The Product +The route file exists, but nothing mounts the workflow visualization branch in the active shell. + +## What Is Worth Preserving +Keep the timeline, step-diff, and replay ideas if they can strengthen evidence or release run introspection. + +## Likely Successor Or Merge Target +/evidence or /releases/runs + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) +- [docs/modules/platform/architecture-overview.md](../../../../../../../../platform/architecture-overview.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/workflow-visualization/components/workflow-visualizer/WorkflowVisualizerComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/workflow-visualization/components/workflow-visualizer/WorkflowVisualizerComponent.md new file mode 100644 index 000000000..d1666fe34 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/workflow-visualization/components/workflow-visualizer/WorkflowVisualizerComponent.md @@ -0,0 +1,47 @@ +# WorkflowVisualizerComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Workflow Visualization Prototype` +- Source: `features/workflow-visualization/components/workflow-visualizer/workflow-visualizer.component.ts` +- Selector: `app-workflow-visualizer` + +## What Is It? +Workflow Visualizer appears to be a visualization or exploration surface in the Workflow Visualization / Components / Workflow Visualizer area. + +## Why It Likely Fell Out Of The Product +The route file exists, but nothing mounts the workflow visualization branch in the active shell. + +## What Is Worth Preserving +Keep the timeline, step-diff, and replay ideas if they can strengthen evidence or release run introspection. + +## Likely Successor Or Merge Target +/evidence or /releases/runs + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) +- [docs/modules/platform/architecture-overview.md](../../../../../../../../platform/architecture-overview.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/features/workspaces/developer/components/developer-workspace/DeveloperWorkspaceComponent.md b/docs/modules/ui/component-preservation-map/components/dead/features/workspaces/developer/components/developer-workspace/DeveloperWorkspaceComponent.md new file mode 100644 index 000000000..c4fc18fb4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/features/workspaces/developer/components/developer-workspace/DeveloperWorkspaceComponent.md @@ -0,0 +1,47 @@ +# DeveloperWorkspaceComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Workspaces` +- Source: `features/workspaces/developer/components/developer-workspace/developer-workspace.component.ts` +- Selector: `stella-developer-workspace` + +## What Is It? +Developer Workspace appears to be a dedicated feature surface in the Workspaces / Developer / Components / Developer Workspace area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/findings/README.md b/docs/modules/ui/component-preservation-map/components/dead/findings/README.md new file mode 100644 index 000000000..f0198c5b1 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/findings/README.md @@ -0,0 +1,18 @@ +# Findings + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Findings components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [FindingDetailLayoutComponent](../features/findings/detail/FindingDetailLayoutComponent.md) - `investigate`, features/findings/detail/finding-detail-layout.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/graph/README.md b/docs/modules/ui/component-preservation-map/components/dead/graph/README.md new file mode 100644 index 000000000..a7d4f80f8 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/graph/README.md @@ -0,0 +1,20 @@ +# Graph + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 3 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Graph components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [GraphFiltersComponent](../features/graph/GraphFiltersComponent.md) - `investigate`, features/graph/graph-filters.component.ts +- [GraphHotkeyHelpComponent](../features/graph/GraphHotkeyHelpComponent.md) - `investigate`, features/graph/graph-hotkey-help.component.ts +- [GraphSidePanelsComponent](../features/graph/GraphSidePanelsComponent.md) - `investigate`, features/graph/graph-side-panels.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/home/README.md b/docs/modules/ui/component-preservation-map/components/dead/home/README.md new file mode 100644 index 000000000..b02007083 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/home/README.md @@ -0,0 +1,18 @@ +# Home + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Home components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [HomeDashboardComponent](../features/home/HomeDashboardComponent.md) - `investigate`, features/home/home-dashboard.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/lineage/README.md b/docs/modules/ui/component-preservation-map/components/dead/lineage/README.md new file mode 100644 index 000000000..00411fff8 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/lineage/README.md @@ -0,0 +1,31 @@ +# Lineage + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 14 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Lineage components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [AuditPackExportComponent](../features/lineage/components/audit-pack-export/AuditPackExportComponent.md) - `investigate`, features/lineage/components/audit-pack-export/audit-pack-export.component.ts +- [ExplainerTimelineComponent](../features/lineage/components/explainer-timeline/ExplainerTimelineComponent.md) - `investigate`, features/lineage/components/explainer-timeline/explainer-timeline.component.ts +- [LineageComparePanelComponent](../features/lineage/components/lineage-compare-panel/LineageComparePanelComponent.md) - `investigate`, features/lineage/components/lineage-compare-panel/lineage-compare-panel.component.ts +- [LineageDetailPanelComponent](../features/lineage/components/lineage-detail-panel/LineageDetailPanelComponent.md) - `investigate`, features/lineage/components/lineage-detail-panel/lineage-detail-panel.component.ts +- [LineageEdgeComponent](../features/lineage/components/lineage-edge/LineageEdgeComponent.md) - `investigate`, features/lineage/components/lineage-edge/lineage-edge.component.ts +- [LineageExportButtonsComponent](../features/lineage/components/lineage-export-buttons/LineageExportButtonsComponent.md) - `investigate`, features/lineage/components/lineage-export-buttons/lineage-export-buttons.component.ts +- [LineageExportDialogComponent](../features/lineage/components/lineage-export-dialog/LineageExportDialogComponent.md) - `investigate`, features/lineage/components/lineage-export-dialog/lineage-export-dialog.component.ts +- [LineageMobileCompareComponent](../features/lineage/components/lineage-mobile-compare/LineageMobileCompareComponent.md) - `investigate`, features/lineage/components/lineage-mobile-compare/lineage-mobile-compare.component.ts +- [LineageNodeComponent](../features/lineage/components/lineage-node/LineageNodeComponent.md) - `investigate`, features/lineage/components/lineage-node/lineage-node.component.ts +- [LineageProvenanceCompareComponent](../features/lineage/components/lineage-provenance-compare/LineageProvenanceCompareComponent.md) - `investigate`, features/lineage/components/lineage-provenance-compare/lineage-provenance-compare.component.ts +- [LineageSbomDiffComponent](../features/lineage/components/lineage-sbom-diff/LineageSbomDiffComponent.md) - `investigate`, features/lineage/components/lineage-sbom-diff/lineage-sbom-diff.component.ts +- [LineageVexDiffComponent](../features/lineage/components/lineage-vex-diff/LineageVexDiffComponent.md) - `investigate`, features/lineage/components/lineage-vex-diff/lineage-vex-diff.component.ts +- [NodeDiffTableComponent](../features/lineage/components/node-diff-table/NodeDiffTableComponent.md) - `investigate`, features/lineage/components/node-diff-table/diff-table.component.ts +- [PinnedPanelComponent](../features/lineage/components/pinned-explanation/pinned-panel/PinnedPanelComponent.md) - `investigate`, features/lineage/components/pinned-explanation/pinned-panel/pinned-panel.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/operations/README.md b/docs/modules/ui/component-preservation-map/components/dead/operations/README.md new file mode 100644 index 000000000..69cf499e6 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/operations/README.md @@ -0,0 +1,18 @@ +# Operations + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Operations components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [SearchQualityDashboardComponent](../features/operations/search-quality/SearchQualityDashboardComponent.md) - `investigate`, features/operations/search-quality/search-quality-dashboard.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/overlays/README.md b/docs/modules/ui/component-preservation-map/components/dead/overlays/README.md new file mode 100644 index 000000000..c9ac884d7 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/overlays/README.md @@ -0,0 +1,19 @@ +# Overlays + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 2 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Overlays components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [GateExplainDrawerComponent](../shared/overlays/gate-explain-drawer/GateExplainDrawerComponent.md) - `investigate`, shared/overlays/gate-explain-drawer/gate-explain-drawer.component.ts +- [WitnessDrawerComponent](../shared/overlays/witness-drawer/WitnessDrawerComponent.md) - `investigate`, shared/overlays/witness-drawer/witness-drawer.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/platform-ops/README.md b/docs/modules/ui/component-preservation-map/components/dead/platform-ops/README.md new file mode 100644 index 000000000..20486e9e9 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/platform-ops/README.md @@ -0,0 +1,22 @@ +# Platform Ops Legacy + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 5 +- Default recommendation: `merge` +- Preservation value: `medium` + +Older operations console pages from before the current `/ops` shell consolidation. + +## Why This Branch Matters +Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + +## Likely Destination +/ops and /ops/platform-setup + +## Components +- [BundleExplorerComponent](../features/platform-ops/federation-telemetry/BundleExplorerComponent.md) - `merge`, features/platform-ops/federation-telemetry/bundle-explorer.component.ts +- [ConsentManagementComponent](../features/platform-ops/federation-telemetry/ConsentManagementComponent.md) - `merge`, features/platform-ops/federation-telemetry/consent-management.component.ts +- [FederationOverviewComponent](../features/platform-ops/federation-telemetry/FederationOverviewComponent.md) - `merge`, features/platform-ops/federation-telemetry/federation-overview.component.ts +- [IntelligenceViewerComponent](../features/platform-ops/federation-telemetry/IntelligenceViewerComponent.md) - `merge`, features/platform-ops/federation-telemetry/intelligence-viewer.component.ts +- [PrivacyBudgetMonitorComponent](../features/platform-ops/federation-telemetry/PrivacyBudgetMonitorComponent.md) - `merge`, features/platform-ops/federation-telemetry/privacy-budget-monitor.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/platform/README.md b/docs/modules/ui/component-preservation-map/components/dead/platform/README.md new file mode 100644 index 000000000..06ea1a78e --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/platform/README.md @@ -0,0 +1,18 @@ +# Platform + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Platform components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [PlatformHomePageComponent](../features/platform/PlatformHomePageComponent.md) - `investigate`, features/platform/platform-home-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/policy-studio/README.md b/docs/modules/ui/component-preservation-map/components/dead/policy-studio/README.md new file mode 100644 index 000000000..946dd9f77 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/policy-studio/README.md @@ -0,0 +1,28 @@ +# Policy Studio Legacy + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 11 +- Default recommendation: `merge` +- Preservation value: `high` + +Legacy all-in-one policy authoring, approvals, dashboard, and simulation surfaces from the older IA. + +## Why This Branch Matters +Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + +## Likely Destination +/admin/policy/governance and /admin/policy/simulation + +## Components +- [ConflictVisualizerComponent](../features/policy-studio/ai/ConflictVisualizerComponent.md) - `merge`, features/policy-studio/ai/conflict-visualizer.component.ts +- [LiveRulePreviewComponent](../features/policy-studio/ai/LiveRulePreviewComponent.md) - `merge`, features/policy-studio/ai/live-rule-preview.component.ts +- [TestCasePanelComponent](../features/policy-studio/ai/TestCasePanelComponent.md) - `merge`, features/policy-studio/ai/test-case-panel.component.ts +- [VersionHistoryComponent](../features/policy-studio/ai/VersionHistoryComponent.md) - `merge`, features/policy-studio/ai/version-history.component.ts +- [PolicyApprovalsComponent](../features/policy-studio/approvals/PolicyApprovalsComponent.md) - `merge`, features/policy-studio/approvals/policy-approvals.component.ts +- [PolicyDashboardComponent](../features/policy-studio/dashboard/PolicyDashboardComponent.md) - `merge`, features/policy-studio/dashboard/policy-dashboard.component.ts +- [PolicyEditorComponent](../features/policy-studio/editor/PolicyEditorComponent.md) - `merge`, features/policy-studio/editor/policy-editor.component.ts +- [PolicyExplainComponent](../features/policy-studio/explain/PolicyExplainComponent.md) - `merge`, features/policy-studio/explain/policy-explain.component.ts +- [PolicyNlInputComponent](../features/policy-studio/nl-input/PolicyNlInputComponent.md) - `merge`, features/policy-studio/nl-input/policy-nl-input.component.ts +- [PolicyRuleBuilderComponent](../features/policy-studio/rule-builder/PolicyRuleBuilderComponent.md) - `merge`, features/policy-studio/rule-builder/policy-rule-builder.component.ts +- [PolicyYamlEditorComponent](../features/policy-studio/yaml/PolicyYamlEditorComponent.md) - `merge`, features/policy-studio/yaml/policy-yaml-editor.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/policy/README.md b/docs/modules/ui/component-preservation-map/components/dead/policy/README.md new file mode 100644 index 000000000..05d72b2e8 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/policy/README.md @@ -0,0 +1,20 @@ +# Policy + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 3 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Policy components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [AttestationBadgeComponent](../features/policy/components/attestation-badge/AttestationBadgeComponent.md) - `investigate`, features/policy/components/attestation-badge/attestation-badge.component.ts +- [EvidenceChainViewerComponent](../features/policy/components/evidence-chain-viewer/EvidenceChainViewerComponent.md) - `investigate`, features/policy/components/evidence-chain-viewer/evidence-chain-viewer.component.ts +- [VerdictProofPanelComponent](../features/policy/components/verdict-proof-panel/VerdictProofPanelComponent.md) - `investigate`, features/policy/components/verdict-proof-panel/verdict-proof-panel.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/promotions/README.md b/docs/modules/ui/component-preservation-map/components/dead/promotions/README.md new file mode 100644 index 000000000..f4136e309 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/promotions/README.md @@ -0,0 +1,19 @@ +# Promotions + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 2 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Promotions components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [CreatePromotionComponent](../features/promotions/CreatePromotionComponent.md) - `investigate`, features/promotions/create-promotion.component.ts +- [PromotionDetailComponent](../features/promotions/PromotionDetailComponent.md) - `investigate`, features/promotions/promotion-detail.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/proof-chain/README.md b/docs/modules/ui/component-preservation-map/components/dead/proof-chain/README.md new file mode 100644 index 000000000..b3895435d --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/proof-chain/README.md @@ -0,0 +1,18 @@ +# Proof Chain + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Proof Chain components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [ProofDetailPanelComponent](../features/proof-chain/components/ProofDetailPanelComponent.md) - `investigate`, features/proof-chain/components/proof-detail-panel.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/proof-studio/README.md b/docs/modules/ui/component-preservation-map/components/dead/proof-studio/README.md new file mode 100644 index 000000000..2e6482cba --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/proof-studio/README.md @@ -0,0 +1,18 @@ +# Proof Studio + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Proof Studio components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [ProofStudioContainerComponent](../features/proof-studio/components/proof-studio-container/ProofStudioContainerComponent.md) - `investigate`, features/proof-studio/components/proof-studio-container/proof-studio-container.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/qa/README.md b/docs/modules/ui/component-preservation-map/components/dead/qa/README.md new file mode 100644 index 000000000..867cf6af1 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/qa/README.md @@ -0,0 +1,18 @@ +# Qa + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Qa components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [WebFeatureRecheckWorkbenchComponent](../features/qa/WebFeatureRecheckWorkbenchComponent.md) - `investigate`, features/qa/web-feature-recheck-workbench.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/reachability/README.md b/docs/modules/ui/component-preservation-map/components/dead/reachability/README.md new file mode 100644 index 000000000..2573255ca --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/reachability/README.md @@ -0,0 +1,19 @@ +# Reachability Witnessing + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 2 +- Default recommendation: `merge` +- Preservation value: `high` + +Reachability proof, witness, and proof-of-exploit supporting surfaces. + +## Why This Branch Matters +Keep witness capture, proof overlays, and explainability flows that can reinforce policy and evidence decisions. + +## Likely Destination +/security/reachability or /evidence + +## Components +- [PoEDrawerComponent](../features/reachability/PoEDrawerComponent.md) - `merge`, features/reachability/poe-drawer.component.ts +- [WitnessPageComponent](../features/reachability/WitnessPageComponent.md) - `merge`, features/reachability/witness-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/registry-admin/README.md b/docs/modules/ui/component-preservation-map/components/dead/registry-admin/README.md new file mode 100644 index 000000000..000d92028 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/registry-admin/README.md @@ -0,0 +1,21 @@ +# Registry Admin + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 4 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Registry Admin components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [PlanAuditComponent](../features/registry-admin/components/PlanAuditComponent.md) - `investigate`, features/registry-admin/components/plan-audit.component.ts +- [PlanEditorComponent](../features/registry-admin/components/PlanEditorComponent.md) - `investigate`, features/registry-admin/components/plan-editor.component.ts +- [PlanListComponent](../features/registry-admin/components/PlanListComponent.md) - `investigate`, features/registry-admin/components/plan-list.component.ts +- [RegistryAdminComponent](../features/registry-admin/RegistryAdminComponent.md) - `investigate`, features/registry-admin/registry-admin.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/release-control/README.md b/docs/modules/ui/component-preservation-map/components/dead/release-control/README.md new file mode 100644 index 000000000..9a29edcc6 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/release-control/README.md @@ -0,0 +1,26 @@ +# Release Control Legacy + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 9 +- Default recommendation: `archive` +- Preservation value: `low` + +Pre-rewire release-control setup, governance, and landing pages retained after the route migration. + +## Why This Branch Matters +Preserve only reusable copy, sequencing, or setup checklists that still improve the newer release and topology flows. + +## Likely Destination +/releases, /ops/platform-setup, and /setup/topology + +## Components +- [ReleaseControlGovernanceHubComponent](../features/release-control/governance/ReleaseControlGovernanceHubComponent.md) - `archive`, features/release-control/governance/release-control-governance-hub.component.ts +- [ReleaseControlGovernanceSectionComponent](../features/release-control/governance/ReleaseControlGovernanceSectionComponent.md) - `archive`, features/release-control/governance/release-control-governance-section.component.ts +- [RegionDetailComponent](../features/release-control/regions/RegionDetailComponent.md) - `archive`, features/release-control/regions/region-detail.component.ts +- [RegionsOverviewComponent](../features/release-control/regions/RegionsOverviewComponent.md) - `archive`, features/release-control/regions/regions-overview.component.ts +- [ReleaseControlSetupHomeComponent](../features/release-control/setup/ReleaseControlSetupHomeComponent.md) - `archive`, features/release-control/setup/release-control-setup-home.component.ts +- [SetupBundleTemplatesComponent](../features/release-control/setup/SetupBundleTemplatesComponent.md) - `archive`, features/release-control/setup/setup-bundle-templates.component.ts +- [SetupEnvironmentsPathsComponent](../features/release-control/setup/SetupEnvironmentsPathsComponent.md) - `archive`, features/release-control/setup/setup-environments-paths.component.ts +- [SetupTargetsAgentsComponent](../features/release-control/setup/SetupTargetsAgentsComponent.md) - `archive`, features/release-control/setup/setup-targets-agents.component.ts +- [SetupWorkflowsComponent](../features/release-control/setup/SetupWorkflowsComponent.md) - `archive`, features/release-control/setup/setup-workflows.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/release-orchestrator/README.md b/docs/modules/ui/component-preservation-map/components/dead/release-orchestrator/README.md new file mode 100644 index 000000000..669234726 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/release-orchestrator/README.md @@ -0,0 +1,29 @@ +# Release Orchestrator + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 12 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Release Orchestrator components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [PromotionRequestComponent](../features/release-orchestrator/approvals/promotion-request/PromotionRequestComponent.md) - `investigate`, features/release-orchestrator/approvals/promotion-request/promotion-request.component.ts +- [ReleaseDashboardComponent](../features/release-orchestrator/dashboard/ReleaseDashboardComponent.md) - `investigate`, features/release-orchestrator/dashboard/dashboard.component.ts +- [DeploymentListComponent](../features/release-orchestrator/deployments/deployment-list/DeploymentListComponent.md) - `investigate`, features/release-orchestrator/deployments/deployment-list/deployment-list.component.ts +- [DeploymentMonitorComponent](../features/release-orchestrator/deployments/deployment-monitor/DeploymentMonitorComponent.md) - `investigate`, features/release-orchestrator/deployments/deployment-monitor/deployment-monitor.component.ts +- [EnvironmentSettingsComponent](../features/release-orchestrator/environments/components/environment-settings/EnvironmentSettingsComponent.md) - `investigate`, features/release-orchestrator/environments/components/environment-settings/environment-settings.component.ts +- [FreezeWindowEditorComponent](../features/release-orchestrator/environments/components/freeze-window-editor/FreezeWindowEditorComponent.md) - `investigate`, features/release-orchestrator/environments/components/freeze-window-editor/freeze-window-editor.component.ts +- [TargetListComponent](../features/release-orchestrator/environments/components/target-list/TargetListComponent.md) - `investigate`, features/release-orchestrator/environments/components/target-list/target-list.component.ts +- [EnvironmentListComponent](../features/release-orchestrator/environments/environment-list/EnvironmentListComponent.md) - `investigate`, features/release-orchestrator/environments/environment-list/environment-list.component.ts +- [EvidenceDetailComponent](../features/release-orchestrator/evidence/evidence-detail/EvidenceDetailComponent.md) - `investigate`, features/release-orchestrator/evidence/evidence-detail/evidence-detail.component.ts +- [EvidenceListComponent](../features/release-orchestrator/evidence/evidence-list/EvidenceListComponent.md) - `investigate`, features/release-orchestrator/evidence/evidence-list/evidence-list.component.ts +- [PipelineRunDetailComponent](../features/release-orchestrator/runs/PipelineRunDetailComponent.md) - `investigate`, features/release-orchestrator/runs/pipeline-run-detail.component.ts +- [PipelineRunsListComponent](../features/release-orchestrator/runs/PipelineRunsListComponent.md) - `investigate`, features/release-orchestrator/runs/pipeline-runs-list.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/releases/README.md b/docs/modules/ui/component-preservation-map/components/dead/releases/README.md new file mode 100644 index 000000000..4d20cc64d --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/releases/README.md @@ -0,0 +1,19 @@ +# Releases + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 2 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Releases components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [ReleaseDetailPageComponent](../features/releases/ReleaseDetailPageComponent.md) - `investigate`, features/releases/release-detail-page.component.ts +- [ReleasesListPageComponent](../features/releases/ReleasesListPageComponent.md) - `investigate`, features/releases/releases-list-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/scores/README.md b/docs/modules/ui/component-preservation-map/components/dead/scores/README.md new file mode 100644 index 000000000..a286b1d17 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/scores/README.md @@ -0,0 +1,18 @@ +# Scores + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Scores components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [ScoreComparisonComponent](../features/scores/ScoreComparisonComponent.md) - `investigate`, features/scores/score-comparison.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/security-risk/README.md b/docs/modules/ui/component-preservation-map/components/dead/security-risk/README.md new file mode 100644 index 000000000..cf26c454f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/security-risk/README.md @@ -0,0 +1,18 @@ +# Security Risk + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Security Risk components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [RemediationFixesBadgeComponent](../features/security-risk/remediation/RemediationFixesBadgeComponent.md) - `investigate`, features/security-risk/remediation/remediation-fixes-badge.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/security/README.md b/docs/modules/ui/component-preservation-map/components/dead/security/README.md new file mode 100644 index 000000000..921380599 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/security/README.md @@ -0,0 +1,30 @@ +# Security + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 13 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Security components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [ArtifactDetailPageComponent](../features/security/ArtifactDetailPageComponent.md) - `investigate`, features/security/artifact-detail-page.component.ts +- [ArtifactsPageComponent](../features/security/ArtifactsPageComponent.md) - `investigate`, features/security/artifacts-page.component.ts +- [ExceptionDetailPageComponent](../features/security/ExceptionDetailPageComponent.md) - `investigate`, features/security/exception-detail-page.component.ts +- [LineagePageComponent](../features/security/LineagePageComponent.md) - `investigate`, features/security/lineage-page.component.ts +- [PatchMapPageComponent](../features/security/PatchMapPageComponent.md) - `investigate`, features/security/patch-map-page.component.ts +- [ReachabilityPageComponent](../features/security/ReachabilityPageComponent.md) - `investigate`, features/security/reachability-page.component.ts +- [RiskPageComponent](../features/security/RiskPageComponent.md) - `investigate`, features/security/risk-page.component.ts +- [SecurityComponentDetailPageComponent](../features/security/SecurityComponentDetailPageComponent.md) - `investigate`, features/security/security-component-detail-page.component.ts +- [SecurityEnvironmentRiskDetailPageComponent](../features/security/SecurityEnvironmentRiskDetailPageComponent.md) - `investigate`, features/security/security-environment-risk-detail-page.component.ts +- [SecurityOverviewPageComponent](../features/security/SecurityOverviewPageComponent.md) - `investigate`, features/security/security-overview-page.component.ts +- [UnknownsPageComponent](../features/security/UnknownsPageComponent.md) - `investigate`, features/security/unknowns-page.component.ts +- [VexHubPageComponent](../features/security/VexHubPageComponent.md) - `investigate`, features/security/vex-hub-page.component.ts +- [VulnerabilitiesPageComponent](../features/security/VulnerabilitiesPageComponent.md) - `investigate`, features/security/vulnerabilities-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/settings/README.md b/docs/modules/ui/component-preservation-map/components/dead/settings/README.md new file mode 100644 index 000000000..574078a16 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/settings/README.md @@ -0,0 +1,19 @@ +# Settings + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 2 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Settings components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [DeterminizationConfigPaneComponent](../features/settings/DeterminizationConfigPaneComponent.md) - `investigate`, features/settings/determinization-config-pane.component.ts +- [RemediationPrSettingsComponent](../features/settings/RemediationPrSettingsComponent.md) - `investigate`, features/settings/remediation-pr-settings.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/components/FixVerdictBadgeComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/components/FixVerdictBadgeComponent.md new file mode 100644 index 000000000..eed7ca421 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/components/FixVerdictBadgeComponent.md @@ -0,0 +1,47 @@ +# FixVerdictBadgeComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Components` +- Source: `shared/components/fix-verdict-badge.component.ts` +- Selector: `app-fix-verdict-badge` + +## What Is It? +Fix Verdict Badge appears to be a dedicated feature surface in the Components area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/components/OfflineBannerComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/components/OfflineBannerComponent.md new file mode 100644 index 000000000..4d76761a9 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/components/OfflineBannerComponent.md @@ -0,0 +1,47 @@ +# OfflineBannerComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Components` +- Source: `shared/components/offline-banner.component.ts` +- Selector: `app-offline-banner` + +## What Is It? +Offline Banner appears to be a dedicated feature surface in the Components area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/components/SourceStatusBadgeComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/components/SourceStatusBadgeComponent.md new file mode 100644 index 000000000..769844f46 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/components/SourceStatusBadgeComponent.md @@ -0,0 +1,47 @@ +# SourceStatusBadgeComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Components` +- Source: `shared/components/source-status-badge.component.ts` +- Selector: `app-source-status-badge` + +## What Is It? +Source Status Badge appears to be a dedicated feature surface in the Components area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/components/SourceTypeIconComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/components/SourceTypeIconComponent.md new file mode 100644 index 000000000..ec57f6c13 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/components/SourceTypeIconComponent.md @@ -0,0 +1,47 @@ +# SourceTypeIconComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Components` +- Source: `shared/components/source-type-icon.component.ts` +- Selector: `app-source-type-icon` + +## What Is It? +Source Type Icon appears to be a dedicated feature surface in the Components area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/components/action-waterfall/ActionWaterfallComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/components/action-waterfall/ActionWaterfallComponent.md new file mode 100644 index 000000000..f40dde6bc --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/components/action-waterfall/ActionWaterfallComponent.md @@ -0,0 +1,47 @@ +# ActionWaterfallComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Components` +- Source: `shared/components/action-waterfall/action-waterfall.component.ts` +- Selector: `app-action-waterfall` + +## What Is It? +Action Waterfall appears to be a dedicated feature surface in the Components / Action Waterfall area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/components/evidence-checklist/EvidenceChecklistComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/components/evidence-checklist/EvidenceChecklistComponent.md new file mode 100644 index 000000000..df726699a --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/components/evidence-checklist/EvidenceChecklistComponent.md @@ -0,0 +1,47 @@ +# EvidenceChecklistComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Components` +- Source: `shared/components/evidence-checklist/evidence-checklist.component.ts` +- Selector: `stella-evidence-checklist` + +## What Is It? +Evidence Checklist appears to be a dedicated feature surface in the Components / Evidence Checklist area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/components/graph-diff/GraphSplitViewComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/components/graph-diff/GraphSplitViewComponent.md new file mode 100644 index 000000000..e285e37d8 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/components/graph-diff/GraphSplitViewComponent.md @@ -0,0 +1,47 @@ +# GraphSplitViewComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Components` +- Source: `shared/components/graph-diff/graph-split-view.component.ts` +- Selector: `stellaops-graph-split-view` + +## What Is It? +Graph Split View appears to be a visualization or exploration surface in the Components / Graph Diff area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/components/placeholder-page/PlaceholderPageComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/components/placeholder-page/PlaceholderPageComponent.md new file mode 100644 index 000000000..18fe094aa --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/components/placeholder-page/PlaceholderPageComponent.md @@ -0,0 +1,47 @@ +# PlaceholderPageComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Components` +- Source: `shared/components/placeholder-page/placeholder-page.component.ts` +- Selector: `app-placeholder-page` + +## What Is It? +Placeholder Page appears to be a dedicated feature surface in the Components / Placeholder Page area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/components/theme-toggle/ThemeToggleComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/components/theme-toggle/ThemeToggleComponent.md new file mode 100644 index 000000000..aee5c43b6 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/components/theme-toggle/ThemeToggleComponent.md @@ -0,0 +1,47 @@ +# ThemeToggleComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Components` +- Source: `shared/components/theme-toggle/theme-toggle.component.ts` +- Selector: `app-theme-toggle` + +## What Is It? +Theme Toggle appears to be a dedicated feature surface in the Components / Theme Toggle area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/components/view-mode-toggle/ViewModeToggleComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/components/view-mode-toggle/ViewModeToggleComponent.md new file mode 100644 index 000000000..0a283a5d8 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/components/view-mode-toggle/ViewModeToggleComponent.md @@ -0,0 +1,47 @@ +# ViewModeToggleComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Components` +- Source: `shared/components/view-mode-toggle/view-mode-toggle.component.ts` +- Selector: `stella-view-mode-toggle` + +## What Is It? +View Mode Toggle appears to be a dedicated feature surface in the Components / View Mode Toggle area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/overlays/gate-explain-drawer/GateExplainDrawerComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/overlays/gate-explain-drawer/GateExplainDrawerComponent.md new file mode 100644 index 000000000..345599621 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/overlays/gate-explain-drawer/GateExplainDrawerComponent.md @@ -0,0 +1,47 @@ +# GateExplainDrawerComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Overlays` +- Source: `shared/overlays/gate-explain-drawer/gate-explain-drawer.component.ts` +- Selector: `app-gate-explain-drawer` + +## What Is It? +Gate Explain Drawer appears to be a detail panel or supporting drill-down surface in the Overlays / Gate Explain Drawer area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/overlays/witness-drawer/WitnessDrawerComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/overlays/witness-drawer/WitnessDrawerComponent.md new file mode 100644 index 000000000..3d4fb1f67 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/overlays/witness-drawer/WitnessDrawerComponent.md @@ -0,0 +1,47 @@ +# WitnessDrawerComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Overlays` +- Source: `shared/overlays/witness-drawer/witness-drawer.component.ts` +- Selector: `app-witness-drawer` + +## What Is It? +Witness Drawer appears to be a detail panel or supporting drill-down surface in the Overlays / Witness Drawer area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/ui/copy-to-clipboard/CopyToClipboardComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/copy-to-clipboard/CopyToClipboardComponent.md new file mode 100644 index 000000000..87e2bf7e3 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/copy-to-clipboard/CopyToClipboardComponent.md @@ -0,0 +1,47 @@ +# CopyToClipboardComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Ui` +- Source: `shared/ui/copy-to-clipboard/copy-to-clipboard.component.ts` +- Selector: `app-copy-to-clipboard` + +## What Is It? +Copy To Clipboard appears to be a dedicated feature surface in the Ui / Copy To Clipboard area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/ui/filter-bar/FilterBarComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/filter-bar/FilterBarComponent.md new file mode 100644 index 000000000..6fb8c4df4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/filter-bar/FilterBarComponent.md @@ -0,0 +1,47 @@ +# FilterBarComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Ui` +- Source: `shared/ui/filter-bar/filter-bar.component.ts` +- Selector: `app-filter-bar` + +## What Is It? +Filter Bar appears to be a dedicated feature surface in the Ui / Filter Bar area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/ui/inline-code/InlineCodeComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/inline-code/InlineCodeComponent.md new file mode 100644 index 000000000..1ef0d9d2f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/inline-code/InlineCodeComponent.md @@ -0,0 +1,47 @@ +# InlineCodeComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Ui` +- Source: `shared/ui/inline-code/inline-code.component.ts` +- Selector: `app-inline-code` + +## What Is It? +Inline Code appears to be a dedicated feature surface in the Ui / Inline Code area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/ui/metric-card/MetricCardComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/metric-card/MetricCardComponent.md new file mode 100644 index 000000000..f86efb84e --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/metric-card/MetricCardComponent.md @@ -0,0 +1,47 @@ +# MetricCardComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Ui` +- Source: `shared/ui/metric-card/metric-card.component.ts` +- Selector: `app-metric-card` + +## What Is It? +Metric Card appears to be a dedicated feature surface in the Ui / Metric Card area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/ui/page-header/PageHeaderComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/page-header/PageHeaderComponent.md new file mode 100644 index 000000000..4db55383f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/page-header/PageHeaderComponent.md @@ -0,0 +1,47 @@ +# PageHeaderComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Ui` +- Source: `shared/ui/page-header/page-header.component.ts` +- Selector: `app-page-header` + +## What Is It? +Page Header appears to be a dedicated feature surface in the Ui / Page Header area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/ui/split-pane/SplitPaneComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/split-pane/SplitPaneComponent.md new file mode 100644 index 000000000..9850adf4b --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/split-pane/SplitPaneComponent.md @@ -0,0 +1,47 @@ +# SplitPaneComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Ui` +- Source: `shared/ui/split-pane/split-pane.component.ts` +- Selector: `app-split-pane` + +## What Is It? +Split Pane appears to be a dedicated feature surface in the Ui / Split Pane area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/ui/timeline-list/TimelineListComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/timeline-list/TimelineListComponent.md new file mode 100644 index 000000000..29b5bb486 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/timeline-list/TimelineListComponent.md @@ -0,0 +1,47 @@ +# TimelineListComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Ui` +- Source: `shared/ui/timeline-list/timeline-list.component.ts` +- Selector: `app-timeline-list` + +## What Is It? +Timeline List appears to be a visualization or exploration surface in the Ui / Timeline List area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/shared/ui/witness-viewer/WitnessViewerComponent.md b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/witness-viewer/WitnessViewerComponent.md new file mode 100644 index 000000000..51237de04 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/shared/ui/witness-viewer/WitnessViewerComponent.md @@ -0,0 +1,47 @@ +# WitnessViewerComponent + +## Status Snapshot +- Classification: `dead` +- Confidence: `high` +- Recommendation: `investigate` +- Preservation value: `medium` +- Feature branch: `Ui` +- Source: `shared/ui/witness-viewer/witness-viewer.component.ts` +- Selector: `app-witness-viewer` + +## What Is It? +Witness Viewer appears to be a dedicated feature surface in the Ui / Witness Viewer area. + +## Why It Likely Fell Out Of The Product +No route or runtime references remain in the current Angular shell, which suggests the surface was dropped or replaced. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- none + +### Route files +- none + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Check whether newer routed pages already absorbed this workflow under a different name. +- Review component templates and services for reusable UX or domain language worth salvaging. +- Validate the preservation call against current Stella Ops product docs before archival. diff --git a/docs/modules/ui/component-preservation-map/components/dead/slo-monitoring/README.md b/docs/modules/ui/component-preservation-map/components/dead/slo-monitoring/README.md new file mode 100644 index 000000000..9bd6c1a59 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/slo-monitoring/README.md @@ -0,0 +1,21 @@ +# Slo Monitoring + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 4 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Slo Monitoring components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [SloAlertListComponent](../features/slo-monitoring/SloAlertListComponent.md) - `investigate`, features/slo-monitoring/slo-alert-list.component.ts +- [SloDashboardComponent](../features/slo-monitoring/SloDashboardComponent.md) - `investigate`, features/slo-monitoring/slo-dashboard.component.ts +- [SloDefinitionsComponent](../features/slo-monitoring/SloDefinitionsComponent.md) - `investigate`, features/slo-monitoring/slo-definitions.component.ts +- [SloDetailComponent](../features/slo-monitoring/SloDetailComponent.md) - `investigate`, features/slo-monitoring/slo-detail.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/snapshot/README.md b/docs/modules/ui/component-preservation-map/components/dead/snapshot/README.md new file mode 100644 index 000000000..a877952f8 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/snapshot/README.md @@ -0,0 +1,18 @@ +# Snapshot + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Snapshot components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [SnapshotPanelComponent](../features/snapshot/components/snapshot-panel/SnapshotPanelComponent.md) - `investigate`, features/snapshot/components/snapshot-panel/snapshot-panel.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/timeline/README.md b/docs/modules/ui/component-preservation-map/components/dead/timeline/README.md new file mode 100644 index 000000000..f5508e0c9 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/timeline/README.md @@ -0,0 +1,18 @@ +# Timeline + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Timeline components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [TimelinePageComponent](../features/timeline/pages/timeline-page/TimelinePageComponent.md) - `investigate`, features/timeline/pages/timeline-page/timeline-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/triage-inbox/README.md b/docs/modules/ui/component-preservation-map/components/dead/triage-inbox/README.md new file mode 100644 index 000000000..4feb81aec --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/triage-inbox/README.md @@ -0,0 +1,18 @@ +# Triage Inbox + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Triage Inbox components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [TriageInboxComponent](../features/triage-inbox/TriageInboxComponent.md) - `investigate`, features/triage-inbox/triage-inbox.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/triage/README.md b/docs/modules/ui/component-preservation-map/components/dead/triage/README.md new file mode 100644 index 000000000..940675300 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/triage/README.md @@ -0,0 +1,25 @@ +# Triage Workbench + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 8 +- Default recommendation: `merge` +- Preservation value: `medium` + +Triage experiments, workbenches, and audit-bundle side surfaces around artifact analysis. + +## Why This Branch Matters +Keep any explainability, quiet-lane, or audit-bundle interactions that meaningfully shorten operator triage loops. + +## Likely Destination +/triage/artifacts or /evidence + +## Components +- [AiRecommendationWorkbenchComponent](../features/triage/AiRecommendationWorkbenchComponent.md) - `merge`, features/triage/ai-recommendation-workbench.component.ts +- [AiCodeGuardBadgeComponent](../features/triage/components/ai-code-guard-badge/AiCodeGuardBadgeComponent.md) - `merge`, features/triage/components/ai-code-guard-badge/ai-code-guard-badge.component.ts +- [SnapshotViewerComponent](../features/triage/components/snapshot-viewer/SnapshotViewerComponent.md) - `merge`, features/triage/components/snapshot-viewer/snapshot-viewer.component.ts +- [UnknownsListComponent](../features/triage/components/unknowns-list/UnknownsListComponent.md) - `merge`, features/triage/components/unknowns-list/unknowns-list.component.ts +- [QuietLaneWorkbenchComponent](../features/triage/QuietLaneWorkbenchComponent.md) - `merge`, features/triage/quiet-lane-workbench.component.ts +- [ReasonCapsuleWorkbenchComponent](../features/triage/ReasonCapsuleWorkbenchComponent.md) - `merge`, features/triage/reason-capsule-workbench.component.ts +- [TriageAuditBundleNewComponent](../features/triage/TriageAuditBundleNewComponent.md) - `merge`, features/triage/triage-audit-bundle-new.component.ts +- [TriageAuditBundlesComponent](../features/triage/TriageAuditBundlesComponent.md) - `merge`, features/triage/triage-audit-bundles.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/ui/README.md b/docs/modules/ui/component-preservation-map/components/dead/ui/README.md new file mode 100644 index 000000000..25645829d --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/ui/README.md @@ -0,0 +1,25 @@ +# Ui + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 8 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Ui components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [CopyToClipboardComponent](../shared/ui/copy-to-clipboard/CopyToClipboardComponent.md) - `investigate`, shared/ui/copy-to-clipboard/copy-to-clipboard.component.ts +- [FilterBarComponent](../shared/ui/filter-bar/FilterBarComponent.md) - `investigate`, shared/ui/filter-bar/filter-bar.component.ts +- [InlineCodeComponent](../shared/ui/inline-code/InlineCodeComponent.md) - `investigate`, shared/ui/inline-code/inline-code.component.ts +- [MetricCardComponent](../shared/ui/metric-card/MetricCardComponent.md) - `investigate`, shared/ui/metric-card/metric-card.component.ts +- [PageHeaderComponent](../shared/ui/page-header/PageHeaderComponent.md) - `investigate`, shared/ui/page-header/page-header.component.ts +- [SplitPaneComponent](../shared/ui/split-pane/SplitPaneComponent.md) - `investigate`, shared/ui/split-pane/split-pane.component.ts +- [TimelineListComponent](../shared/ui/timeline-list/TimelineListComponent.md) - `investigate`, shared/ui/timeline-list/timeline-list.component.ts +- [WitnessViewerComponent](../shared/ui/witness-viewer/WitnessViewerComponent.md) - `investigate`, shared/ui/witness-viewer/witness-viewer.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/unknowns/README.md b/docs/modules/ui/component-preservation-map/components/dead/unknowns/README.md new file mode 100644 index 000000000..aac5445d5 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/unknowns/README.md @@ -0,0 +1,18 @@ +# Unknowns + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Unknowns components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [UnknownsBudgetWidgetComponent](../features/unknowns/UnknownsBudgetWidgetComponent.md) - `investigate`, features/unknowns/unknowns-budget-widget.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/vex-studio/README.md b/docs/modules/ui/component-preservation-map/components/dead/vex-studio/README.md new file mode 100644 index 000000000..afb6b9544 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/vex-studio/README.md @@ -0,0 +1,18 @@ +# VEX Studio + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `merge` +- Preservation value: `high` + +Conflict-resolution and authoring surfaces around VEX decisions. + +## Why This Branch Matters +Keep conflict resolution workflows, rationale capture, and consensus tooling that could strengthen VEX Hub. + +## Likely Destination +/admin/vex-hub + +## Components +- [VexConflictStudioComponent](../features/vex-studio/VexConflictStudioComponent.md) - `merge`, features/vex-studio/vex-conflict-studio.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/vuln-explorer/README.md b/docs/modules/ui/component-preservation-map/components/dead/vuln-explorer/README.md new file mode 100644 index 000000000..f7dcbd262 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/vuln-explorer/README.md @@ -0,0 +1,24 @@ +# Vuln Explorer + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 7 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Vuln Explorer components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [CitationLinkComponent](../features/vuln-explorer/components/citation-link/CitationLinkComponent.md) - `investigate`, features/vuln-explorer/components/citation-link/citation-link.component.ts +- [CitationListComponent](../features/vuln-explorer/components/citation-link/CitationListComponent.md) - `investigate`, features/vuln-explorer/components/citation-link/citation-link.component.ts +- [EvidenceTreeComponent](../features/vuln-explorer/components/evidence-tree/EvidenceTreeComponent.md) - `investigate`, features/vuln-explorer/components/evidence-tree/evidence-tree.component.ts +- [FilterPresetPillsComponent](../features/vuln-explorer/components/filter-preset-pills/FilterPresetPillsComponent.md) - `investigate`, features/vuln-explorer/components/filter-preset-pills/filter-preset-pills.component.ts +- [TriageCardGridComponent](../features/vuln-explorer/components/triage-card/TriageCardGridComponent.md) - `investigate`, features/vuln-explorer/components/triage-card/triage-card.component.ts +- [TriageFiltersComponent](../features/vuln-explorer/components/triage-filters/TriageFiltersComponent.md) - `investigate`, features/vuln-explorer/components/triage-filters/triage-filters.component.ts +- [VerdictExplanationComponent](../features/vuln-explorer/components/verdict-explanation/VerdictExplanationComponent.md) - `investigate`, features/vuln-explorer/components/verdict-explanation/verdict-explanation.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/vulnerabilities/README.md b/docs/modules/ui/component-preservation-map/components/dead/vulnerabilities/README.md new file mode 100644 index 000000000..ab1167997 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/vulnerabilities/README.md @@ -0,0 +1,19 @@ +# Vulnerabilities + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 2 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Vulnerabilities components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [VulnTriageDashboardComponent](../features/vulnerabilities/components/vuln-triage-dashboard/VulnTriageDashboardComponent.md) - `investigate`, features/vulnerabilities/components/vuln-triage-dashboard/vuln-triage-dashboard.component.ts +- [VulnerabilityDetailComponent](../features/vulnerabilities/VulnerabilityDetailComponent.md) - `investigate`, features/vulnerabilities/vulnerability-detail.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/watchlist/README.md b/docs/modules/ui/component-preservation-map/components/dead/watchlist/README.md new file mode 100644 index 000000000..18e0dd2e4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/watchlist/README.md @@ -0,0 +1,18 @@ +# Watchlist + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `wire-in` +- Preservation value: `high` + +Operator watchlist and monitoring surfaces backed by a real client/provider but not wired into navigation. + +## Why This Branch Matters +Keep the operational watchlist concept, status views, and monitoring workflows; this looks closer to productizable than many other dead branches. + +## Likely Destination +/mission-control or /ops + +## Components +- [WatchlistPageComponent](../features/watchlist/WatchlistPageComponent.md) - `wire-in`, features/watchlist/watchlist-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/workflow-visualization/README.md b/docs/modules/ui/component-preservation-map/components/dead/workflow-visualization/README.md new file mode 100644 index 000000000..9b281214f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/workflow-visualization/README.md @@ -0,0 +1,20 @@ +# Workflow Visualization Prototype + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 3 +- Default recommendation: `investigate` +- Preservation value: `medium` + +A prototype workflow explorer with time-travel and step drill-down concepts. + +## Why This Branch Matters +Keep the timeline, step-diff, and replay ideas if they can strengthen evidence or release run introspection. + +## Likely Destination +/evidence or /releases/runs + +## Components +- [StepDetailPanelComponent](../features/workflow-visualization/components/step-detail-panel/StepDetailPanelComponent.md) - `investigate`, features/workflow-visualization/components/step-detail-panel/step-detail-panel.component.ts +- [TimeTravelControlsComponent](../features/workflow-visualization/components/time-travel-controls/TimeTravelControlsComponent.md) - `investigate`, features/workflow-visualization/components/time-travel-controls/time-travel-controls.component.ts +- [WorkflowVisualizerComponent](../features/workflow-visualization/components/workflow-visualizer/WorkflowVisualizerComponent.md) - `investigate`, features/workflow-visualization/components/workflow-visualizer/workflow-visualizer.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/dead/workspaces/README.md b/docs/modules/ui/component-preservation-map/components/dead/workspaces/README.md new file mode 100644 index 000000000..89565fc3e --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/dead/workspaces/README.md @@ -0,0 +1,18 @@ +# Workspaces + +## Branch Summary +- Classification bucket: `dead` +- Components in branch: 1 +- Default recommendation: `investigate` +- Preservation value: `medium` + +Workspaces components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [DeveloperWorkspaceComponent](../features/workspaces/developer/components/developer-workspace/DeveloperWorkspaceComponent.md) - `investigate`, features/workspaces/developer/components/developer-workspace/developer-workspace.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/ai-runs/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/ai-runs/README.md new file mode 100644 index 000000000..738c39bb7 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/ai-runs/README.md @@ -0,0 +1,19 @@ +# Ai Runs + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 2 +- Default recommendation: `preserve` +- Preservation value: `high` + +Ai Runs components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [AiRunViewerComponent](../features/ai-runs/AiRunViewerComponent.md) - `preserve`, features/ai-runs/ai-run-viewer.component.ts +- [AiRunsListComponent](../features/ai-runs/AiRunsListComponent.md) - `preserve`, features/ai-runs/ai-runs-list.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/aoc-compliance/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/aoc-compliance/README.md new file mode 100644 index 000000000..47d2c76b0 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/aoc-compliance/README.md @@ -0,0 +1,22 @@ +# Aoc Compliance + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 5 +- Default recommendation: `preserve` +- Preservation value: `high` + +Aoc Compliance components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [AocComplianceDashboardComponent](../features/aoc-compliance/AocComplianceDashboardComponent.md) - `preserve`, features/aoc-compliance/aoc-compliance-dashboard.component.ts +- [ComplianceReportComponent](../features/aoc-compliance/ComplianceReportComponent.md) - `preserve`, features/aoc-compliance/compliance-report.component.ts +- [GuardViolationsListComponent](../features/aoc-compliance/GuardViolationsListComponent.md) - `preserve`, features/aoc-compliance/guard-violations-list.component.ts +- [IngestionFlowComponent](../features/aoc-compliance/IngestionFlowComponent.md) - `preserve`, features/aoc-compliance/ingestion-flow.component.ts +- [ProvenanceValidatorComponent](../features/aoc-compliance/ProvenanceValidatorComponent.md) - `preserve`, features/aoc-compliance/provenance-validator.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/audit-log/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/audit-log/README.md new file mode 100644 index 000000000..eea79398c --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/audit-log/README.md @@ -0,0 +1,27 @@ +# Audit Log + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 10 +- Default recommendation: `preserve` +- Preservation value: `high` + +Audit Log components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [AuditAnomaliesComponent](../features/audit-log/AuditAnomaliesComponent.md) - `preserve`, features/audit-log/audit-anomalies.component.ts +- [AuditAuthorityComponent](../features/audit-log/AuditAuthorityComponent.md) - `preserve`, features/audit-log/audit-authority.component.ts +- [AuditCorrelationsComponent](../features/audit-log/AuditCorrelationsComponent.md) - `preserve`, features/audit-log/audit-correlations.component.ts +- [AuditEventDetailComponent](../features/audit-log/AuditEventDetailComponent.md) - `preserve`, features/audit-log/audit-event-detail.component.ts +- [AuditExportComponent](../features/audit-log/AuditExportComponent.md) - `preserve`, features/audit-log/audit-export.component.ts +- [AuditIntegrationsComponent](../features/audit-log/AuditIntegrationsComponent.md) - `preserve`, features/audit-log/audit-integrations.component.ts +- [AuditLogTableComponent](../features/audit-log/AuditLogTableComponent.md) - `preserve`, features/audit-log/audit-log-table.component.ts +- [AuditPolicyComponent](../features/audit-log/AuditPolicyComponent.md) - `preserve`, features/audit-log/audit-policy.component.ts +- [AuditTimelineSearchComponent](../features/audit-log/AuditTimelineSearchComponent.md) - `preserve`, features/audit-log/audit-timeline-search.component.ts +- [AuditVexComponent](../features/audit-log/AuditVexComponent.md) - `preserve`, features/audit-log/audit-vex.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/bundles/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/bundles/README.md new file mode 100644 index 000000000..baa1a879e --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/bundles/README.md @@ -0,0 +1,19 @@ +# Bundles + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 2 +- Default recommendation: `preserve` +- Preservation value: `high` + +Bundles components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [BundleDetailComponent](../features/bundles/BundleDetailComponent.md) - `preserve`, features/bundles/bundle-detail.component.ts +- [BundleVersionDetailComponent](../features/bundles/BundleVersionDetailComponent.md) - `preserve`, features/bundles/bundle-version-detail.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/console-admin/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/console-admin/README.md new file mode 100644 index 000000000..5f576286c --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/console-admin/README.md @@ -0,0 +1,23 @@ +# Console Admin + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 6 +- Default recommendation: `preserve` +- Preservation value: `high` + +Console Admin components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [ClientsListComponent](../features/console-admin/clients/ClientsListComponent.md) - `preserve`, features/console-admin/clients/clients-list.component.ts +- [ConsoleAdminLayoutComponent](../features/console-admin/ConsoleAdminLayoutComponent.md) - `preserve`, features/console-admin/console-admin-layout.component.ts +- [RolesListComponent](../features/console-admin/roles/RolesListComponent.md) - `preserve`, features/console-admin/roles/roles-list.component.ts +- [TenantsListComponent](../features/console-admin/tenants/TenantsListComponent.md) - `preserve`, features/console-admin/tenants/tenants-list.component.ts +- [TokensListComponent](../features/console-admin/tokens/TokensListComponent.md) - `preserve`, features/console-admin/tokens/tokens-list.component.ts +- [UsersListComponent](../features/console-admin/users/UsersListComponent.md) - `preserve`, features/console-admin/users/users-list.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/console/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/console/README.md new file mode 100644 index 000000000..79d5d90a5 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/console/README.md @@ -0,0 +1,18 @@ +# Console + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 1 +- Default recommendation: `preserve` +- Preservation value: `high` + +Console components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [ConsoleProfileComponent](../features/console/ConsoleProfileComponent.md) - `preserve`, features/console/console-profile.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/deadletter/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/deadletter/README.md new file mode 100644 index 000000000..822c0b44e --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/deadletter/README.md @@ -0,0 +1,20 @@ +# Deadletter + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 3 +- Default recommendation: `preserve` +- Preservation value: `high` + +Deadletter components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [DeadLetterDashboardComponent](../features/deadletter/DeadLetterDashboardComponent.md) - `preserve`, features/deadletter/deadletter-dashboard.component.ts +- [DeadLetterEntryDetailComponent](../features/deadletter/DeadLetterEntryDetailComponent.md) - `preserve`, features/deadletter/deadletter-entry-detail.component.ts +- [DeadLetterQueueComponent](../features/deadletter/DeadLetterQueueComponent.md) - `preserve`, features/deadletter/deadletter-queue.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/evidence-export/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/evidence-export/README.md new file mode 100644 index 000000000..7be09050b --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/evidence-export/README.md @@ -0,0 +1,19 @@ +# Evidence Export + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 2 +- Default recommendation: `preserve` +- Preservation value: `high` + +Evidence Export components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [EvidenceBundlesComponent](../features/evidence-export/EvidenceBundlesComponent.md) - `preserve`, features/evidence-export/evidence-bundles.component.ts +- [ProvenanceVisualizationComponent](../features/evidence-export/ProvenanceVisualizationComponent.md) - `preserve`, features/evidence-export/provenance-visualization.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/evidence-pack/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/evidence-pack/README.md new file mode 100644 index 000000000..a2505e3e4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/evidence-pack/README.md @@ -0,0 +1,18 @@ +# Evidence Pack + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 1 +- Default recommendation: `preserve` +- Preservation value: `high` + +Evidence Pack components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [EvidencePackViewerComponent](../features/evidence-pack/EvidencePackViewerComponent.md) - `preserve`, features/evidence-pack/evidence-pack-viewer.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/exceptions/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/exceptions/README.md new file mode 100644 index 000000000..c24a44c7f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/exceptions/README.md @@ -0,0 +1,18 @@ +# Exceptions + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 1 +- Default recommendation: `preserve` +- Preservation value: `high` + +Exceptions components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [ExceptionApprovalQueueComponent](../features/exceptions/ExceptionApprovalQueueComponent.md) - `preserve`, features/exceptions/exception-approval-queue.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/ai-runs/AiRunViewerComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/ai-runs/AiRunViewerComponent.md new file mode 100644 index 000000000..57d0eeafa --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/ai-runs/AiRunViewerComponent.md @@ -0,0 +1,47 @@ +# AiRunViewerComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Ai Runs` +- Source: `features/ai-runs/ai-run-viewer.component.ts` +- Selector: `stellaops-ai-run-viewer` + +## What Is It? +Ai Run Viewer appears to be a dedicated feature surface in the Ai Runs area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/ai-runs/:runId` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/operations.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/ai-runs/AiRunsListComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/ai-runs/AiRunsListComponent.md new file mode 100644 index 000000000..c1ec6fad2 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/ai-runs/AiRunsListComponent.md @@ -0,0 +1,47 @@ +# AiRunsListComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Ai Runs` +- Source: `features/ai-runs/ai-runs-list.component.ts` +- Selector: `stellaops-ai-runs-list` + +## What Is It? +Ai Runs List appears to be a dedicated feature surface in the Ai Runs area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/ai-runs` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/operations.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/AocComplianceDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/AocComplianceDashboardComponent.md new file mode 100644 index 000000000..58e1dc51d --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/AocComplianceDashboardComponent.md @@ -0,0 +1,47 @@ +# AocComplianceDashboardComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Aoc Compliance` +- Source: `features/aoc-compliance/aoc-compliance-dashboard.component.ts` +- Selector: `app-aoc-compliance-dashboard` + +## What Is It? +Aoc Compliance Dashboard appears to be a landing or overview surface in the Aoc Compliance area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/aoc` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/aoc-compliance/aoc-compliance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/ComplianceReportComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/ComplianceReportComponent.md new file mode 100644 index 000000000..a896e9ce2 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/ComplianceReportComponent.md @@ -0,0 +1,47 @@ +# ComplianceReportComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Aoc Compliance` +- Source: `features/aoc-compliance/compliance-report.component.ts` +- Selector: `app-compliance-report` + +## What Is It? +Compliance Report appears to be a dedicated feature surface in the Aoc Compliance area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/aoc/report` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/aoc-compliance/aoc-compliance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/GuardViolationsListComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/GuardViolationsListComponent.md new file mode 100644 index 000000000..dd6935235 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/GuardViolationsListComponent.md @@ -0,0 +1,47 @@ +# GuardViolationsListComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Aoc Compliance` +- Source: `features/aoc-compliance/guard-violations-list.component.ts` +- Selector: `app-guard-violations-list` + +## What Is It? +Guard Violations List appears to be a dedicated feature surface in the Aoc Compliance area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/aoc/violations` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/aoc-compliance/aoc-compliance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/IngestionFlowComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/IngestionFlowComponent.md new file mode 100644 index 000000000..8812e0773 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/IngestionFlowComponent.md @@ -0,0 +1,47 @@ +# IngestionFlowComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Aoc Compliance` +- Source: `features/aoc-compliance/ingestion-flow.component.ts` +- Selector: `app-ingestion-flow` + +## What Is It? +Ingestion Flow appears to be a dedicated feature surface in the Aoc Compliance area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/aoc/ingestion` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/aoc-compliance/aoc-compliance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/ProvenanceValidatorComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/ProvenanceValidatorComponent.md new file mode 100644 index 000000000..71d62102c --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/aoc-compliance/ProvenanceValidatorComponent.md @@ -0,0 +1,47 @@ +# ProvenanceValidatorComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Aoc Compliance` +- Source: `features/aoc-compliance/provenance-validator.component.ts` +- Selector: `app-provenance-validator` + +## What Is It? +Provenance Validator appears to be a dedicated feature surface in the Aoc Compliance area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/aoc/provenance` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/aoc-compliance/aoc-compliance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditAnomaliesComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditAnomaliesComponent.md new file mode 100644 index 000000000..811803968 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditAnomaliesComponent.md @@ -0,0 +1,47 @@ +# AuditAnomaliesComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Audit Log` +- Source: `features/audit-log/audit-anomalies.component.ts` +- Selector: `app-audit-anomalies` + +## What Is It? +Audit Anomalies appears to be a audit and evidence surface in the Audit Log area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/evidence/audit-log/anomalies` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditAuthorityComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditAuthorityComponent.md new file mode 100644 index 000000000..f69501dfd --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditAuthorityComponent.md @@ -0,0 +1,47 @@ +# AuditAuthorityComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Audit Log` +- Source: `features/audit-log/audit-authority.component.ts` +- Selector: `app-audit-authority` + +## What Is It? +Audit Authority appears to be a audit and evidence surface in the Audit Log area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/evidence/audit-log/authority` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditCorrelationsComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditCorrelationsComponent.md new file mode 100644 index 000000000..68650ba5a --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditCorrelationsComponent.md @@ -0,0 +1,47 @@ +# AuditCorrelationsComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Audit Log` +- Source: `features/audit-log/audit-correlations.component.ts` +- Selector: `app-audit-correlations` + +## What Is It? +Audit Correlations appears to be a audit and evidence surface in the Audit Log area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/evidence/audit-log/correlations` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditEventDetailComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditEventDetailComponent.md new file mode 100644 index 000000000..6fd55fdd7 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditEventDetailComponent.md @@ -0,0 +1,47 @@ +# AuditEventDetailComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Audit Log` +- Source: `features/audit-log/audit-event-detail.component.ts` +- Selector: `app-audit-event-detail` + +## What Is It? +Audit Event Detail appears to be a audit and evidence surface in the Audit Log area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/evidence/audit-log/events/:eventId` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditExportComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditExportComponent.md new file mode 100644 index 000000000..f3a2bde75 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditExportComponent.md @@ -0,0 +1,47 @@ +# AuditExportComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Audit Log` +- Source: `features/audit-log/audit-export.component.ts` +- Selector: `app-audit-export` + +## What Is It? +Audit Export appears to be a audit and evidence surface in the Audit Log area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/evidence/audit-log/export` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditIntegrationsComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditIntegrationsComponent.md new file mode 100644 index 000000000..a0639ea05 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditIntegrationsComponent.md @@ -0,0 +1,47 @@ +# AuditIntegrationsComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Audit Log` +- Source: `features/audit-log/audit-integrations.component.ts` +- Selector: `app-audit-integrations` + +## What Is It? +Audit Integrations appears to be a audit and evidence surface in the Audit Log area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/evidence/audit-log/integrations` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditLogTableComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditLogTableComponent.md new file mode 100644 index 000000000..39208ef65 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditLogTableComponent.md @@ -0,0 +1,47 @@ +# AuditLogTableComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Audit Log` +- Source: `features/audit-log/audit-log-table.component.ts` +- Selector: `app-audit-log-table` + +## What Is It? +Audit Log Table appears to be a audit and evidence surface in the Audit Log area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/evidence/audit-log/events` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditPolicyComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditPolicyComponent.md new file mode 100644 index 000000000..10f3993f2 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditPolicyComponent.md @@ -0,0 +1,47 @@ +# AuditPolicyComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Audit Log` +- Source: `features/audit-log/audit-policy.component.ts` +- Selector: `app-audit-policy` + +## What Is It? +Audit Policy appears to be a audit and evidence surface in the Audit Log area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/evidence/audit-log/policy` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditTimelineSearchComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditTimelineSearchComponent.md new file mode 100644 index 000000000..71aa42a2c --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditTimelineSearchComponent.md @@ -0,0 +1,47 @@ +# AuditTimelineSearchComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Audit Log` +- Source: `features/audit-log/audit-timeline-search.component.ts` +- Selector: `app-audit-timeline-search` + +## What Is It? +Audit Timeline Search appears to be a audit and evidence surface in the Audit Log area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/evidence/audit-log/timeline` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditVexComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditVexComponent.md new file mode 100644 index 000000000..62131796f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/audit-log/AuditVexComponent.md @@ -0,0 +1,47 @@ +# AuditVexComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Audit Log` +- Source: `features/audit-log/audit-vex.component.ts` +- Selector: `app-audit-vex` + +## What Is It? +Audit Vex appears to be a audit and evidence surface in the Audit Log area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/evidence/audit-log/vex` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/bundles/BundleDetailComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/bundles/BundleDetailComponent.md new file mode 100644 index 000000000..778f42b17 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/bundles/BundleDetailComponent.md @@ -0,0 +1,47 @@ +# BundleDetailComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Bundles` +- Source: `features/bundles/bundle-detail.component.ts` +- Selector: `app-bundle-detail` + +## What Is It? +Bundle Detail appears to be a detail panel or supporting drill-down surface in the Bundles area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/releases/bundles/:bundleId` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/bundles/bundles.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/bundles/BundleVersionDetailComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/bundles/BundleVersionDetailComponent.md new file mode 100644 index 000000000..a5246b392 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/bundles/BundleVersionDetailComponent.md @@ -0,0 +1,47 @@ +# BundleVersionDetailComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Bundles` +- Source: `features/bundles/bundle-version-detail.component.ts` +- Selector: `app-bundle-version-detail` + +## What Is It? +Bundle Version Detail appears to be a detail panel or supporting drill-down surface in the Bundles area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/releases/bundles/:bundleId/versions/:versionId` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/bundles/bundles.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/ConsoleAdminLayoutComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/ConsoleAdminLayoutComponent.md new file mode 100644 index 000000000..34c72532f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/ConsoleAdminLayoutComponent.md @@ -0,0 +1,47 @@ +# ConsoleAdminLayoutComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Console Admin` +- Source: `features/console-admin/console-admin-layout.component.ts` +- Selector: `app-console-admin-layout` + +## What Is It? +Console Admin Layout appears to be a dedicated feature surface in the Console Admin area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/console-admin` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/console-admin/console-admin.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/clients/ClientsListComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/clients/ClientsListComponent.md new file mode 100644 index 000000000..279e435c2 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/clients/ClientsListComponent.md @@ -0,0 +1,47 @@ +# ClientsListComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Console Admin` +- Source: `features/console-admin/clients/clients-list.component.ts` +- Selector: `app-clients-list` + +## What Is It? +Clients List appears to be a dedicated feature surface in the Console Admin / Clients area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/console-admin/clients` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/console-admin/console-admin.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/roles/RolesListComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/roles/RolesListComponent.md new file mode 100644 index 000000000..9ba25d601 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/roles/RolesListComponent.md @@ -0,0 +1,47 @@ +# RolesListComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Console Admin` +- Source: `features/console-admin/roles/roles-list.component.ts` +- Selector: `app-roles-list` + +## What Is It? +Roles List appears to be a dedicated feature surface in the Console Admin / Roles area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/console-admin/roles` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/console-admin/console-admin.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/tenants/TenantsListComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/tenants/TenantsListComponent.md new file mode 100644 index 000000000..e1ede7ee5 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/tenants/TenantsListComponent.md @@ -0,0 +1,48 @@ +# TenantsListComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Console Admin` +- Source: `features/console-admin/tenants/tenants-list.component.ts` +- Selector: `app-tenants-list` + +## What Is It? +Tenants List appears to be a dedicated feature surface in the Console Admin / Tenants area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/console-admin` +- `/console-admin/tenants` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/console-admin/console-admin.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/tokens/TokensListComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/tokens/TokensListComponent.md new file mode 100644 index 000000000..fbff04b4f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/tokens/TokensListComponent.md @@ -0,0 +1,47 @@ +# TokensListComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Console Admin` +- Source: `features/console-admin/tokens/tokens-list.component.ts` +- Selector: `app-tokens-list` + +## What Is It? +Tokens List appears to be a dedicated feature surface in the Console Admin / Tokens area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/console-admin/tokens` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/console-admin/console-admin.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/users/UsersListComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/users/UsersListComponent.md new file mode 100644 index 000000000..2d376ddbb --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/console-admin/users/UsersListComponent.md @@ -0,0 +1,47 @@ +# UsersListComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Console Admin` +- Source: `features/console-admin/users/users-list.component.ts` +- Selector: `app-users-list` + +## What Is It? +Users List appears to be a dedicated feature surface in the Console Admin / Users area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/console-admin/users` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/console-admin/console-admin.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/console/ConsoleProfileComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/console/ConsoleProfileComponent.md new file mode 100644 index 000000000..dca479b6a --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/console/ConsoleProfileComponent.md @@ -0,0 +1,47 @@ +# ConsoleProfileComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Console` +- Source: `features/console/console-profile.component.ts` +- Selector: `app-console-profile` + +## What Is It? +Console Profile appears to be a dedicated feature surface in the Console area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/profile` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/administration.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/deadletter/DeadLetterDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/deadletter/DeadLetterDashboardComponent.md new file mode 100644 index 000000000..4025ef366 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/deadletter/DeadLetterDashboardComponent.md @@ -0,0 +1,47 @@ +# DeadLetterDashboardComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Deadletter` +- Source: `features/deadletter/deadletter-dashboard.component.ts` +- Selector: `app-deadletter-dashboard` + +## What Is It? +Dead Letter Dashboard appears to be a landing or overview surface in the Deadletter area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/dead-letter` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/deadletter/deadletter.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/deadletter/DeadLetterEntryDetailComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/deadletter/DeadLetterEntryDetailComponent.md new file mode 100644 index 000000000..91f444a62 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/deadletter/DeadLetterEntryDetailComponent.md @@ -0,0 +1,47 @@ +# DeadLetterEntryDetailComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Deadletter` +- Source: `features/deadletter/deadletter-entry-detail.component.ts` +- Selector: `app-deadletter-entry-detail` + +## What Is It? +Dead Letter Entry Detail appears to be a detail panel or supporting drill-down surface in the Deadletter area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/dead-letter/entry/:entryId` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/deadletter/deadletter.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/deadletter/DeadLetterQueueComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/deadletter/DeadLetterQueueComponent.md new file mode 100644 index 000000000..d0bcb2a29 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/deadletter/DeadLetterQueueComponent.md @@ -0,0 +1,47 @@ +# DeadLetterQueueComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Deadletter` +- Source: `features/deadletter/deadletter-queue.component.ts` +- Selector: `app-deadletter-queue` + +## What Is It? +Dead Letter Queue appears to be a dedicated feature surface in the Deadletter area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/dead-letter/queue` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/deadletter/deadletter.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/evidence-export/EvidenceBundlesComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/evidence-export/EvidenceBundlesComponent.md new file mode 100644 index 000000000..998109a9c --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/evidence-export/EvidenceBundlesComponent.md @@ -0,0 +1,47 @@ +# EvidenceBundlesComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Evidence Export` +- Source: `features/evidence-export/evidence-bundles.component.ts` +- Selector: `app-evidence-bundles` + +## What Is It? +Evidence Bundles appears to be a dedicated feature surface in the Evidence Export area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/evidence/exports/bundles` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/evidence-export/evidence-export.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/evidence-export/ProvenanceVisualizationComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/evidence-export/ProvenanceVisualizationComponent.md new file mode 100644 index 000000000..d70d8bcf0 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/evidence-export/ProvenanceVisualizationComponent.md @@ -0,0 +1,47 @@ +# ProvenanceVisualizationComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Evidence Export` +- Source: `features/evidence-export/provenance-visualization.component.ts` +- Selector: `app-provenance-visualization` + +## What Is It? +Provenance Visualization appears to be a visualization or exploration surface in the Evidence Export area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/evidence/exports/provenance` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/evidence-export/evidence-export.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/evidence-pack/EvidencePackViewerComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/evidence-pack/EvidencePackViewerComponent.md new file mode 100644 index 000000000..6c12d8f09 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/evidence-pack/EvidencePackViewerComponent.md @@ -0,0 +1,47 @@ +# EvidencePackViewerComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Evidence Pack` +- Source: `features/evidence-pack/evidence-pack-viewer.component.ts` +- Selector: `stellaops-evidence-pack-viewer` + +## What Is It? +Evidence Pack Viewer appears to be a dedicated feature surface in the Evidence Pack area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/evidence/capsules/:capsuleId` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/evidence.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/exceptions/ExceptionApprovalQueueComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/exceptions/ExceptionApprovalQueueComponent.md new file mode 100644 index 000000000..bc1baa215 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/exceptions/ExceptionApprovalQueueComponent.md @@ -0,0 +1,47 @@ +# ExceptionApprovalQueueComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Exceptions` +- Source: `features/exceptions/exception-approval-queue.component.ts` +- Selector: `app-exception-approval-queue` + +## What Is It? +Exception Approval Queue appears to be a approval and review surface in the Exceptions area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/security/exceptions/approvals` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/graph/GraphExplorerComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/graph/GraphExplorerComponent.md new file mode 100644 index 000000000..35d462fef --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/graph/GraphExplorerComponent.md @@ -0,0 +1,47 @@ +# GraphExplorerComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Graph` +- Source: `features/graph/graph-explorer.component.ts` +- Selector: `app-graph-explorer` + +## What Is It? +Graph Explorer appears to be a visualization or exploration surface in the Graph area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/security/sbom/graph` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/integration-hub/IntegrationActivityComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/integration-hub/IntegrationActivityComponent.md new file mode 100644 index 000000000..d4b86973e --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/integration-hub/IntegrationActivityComponent.md @@ -0,0 +1,48 @@ +# IntegrationActivityComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Integration Hub` +- Source: `features/integration-hub/integration-activity.component.ts` +- Selector: `app-integration-activity` + +## What Is It? +Integration Activity appears to be a dedicated feature surface in the Integration Hub area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/integrations/activity` +- `/setup/integrations/activity` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/integration-hub/integration-hub.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/issuer-trust/components/IssuerDetailComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/issuer-trust/components/IssuerDetailComponent.md new file mode 100644 index 000000000..eeff51f5c --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/issuer-trust/components/IssuerDetailComponent.md @@ -0,0 +1,47 @@ +# IssuerDetailComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Issuer Trust` +- Source: `features/issuer-trust/components/issuer-detail.component.ts` +- Selector: `app-issuer-detail` + +## What Is It? +Issuer Detail appears to be a detail panel or supporting drill-down surface in the Issuer Trust / Components area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/trust/issuers/:issuerId` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/issuer-trust/issuer-trust.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/issuer-trust/components/IssuerEditorComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/issuer-trust/components/IssuerEditorComponent.md new file mode 100644 index 000000000..db3b273ba --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/issuer-trust/components/IssuerEditorComponent.md @@ -0,0 +1,47 @@ +# IssuerEditorComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Issuer Trust` +- Source: `features/issuer-trust/components/issuer-editor.component.ts` +- Selector: `app-issuer-editor` + +## What Is It? +Issuer Editor appears to be a authoring or editing surface in the Issuer Trust / Components area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/trust/issuers/new` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/issuer-trust/issuer-trust.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/issuer-trust/components/IssuerListComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/issuer-trust/components/IssuerListComponent.md new file mode 100644 index 000000000..527d21ef8 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/issuer-trust/components/IssuerListComponent.md @@ -0,0 +1,48 @@ +# IssuerListComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Issuer Trust` +- Source: `features/issuer-trust/components/issuer-list.component.ts` +- Selector: `app-issuer-list` + +## What Is It? +Issuer List appears to be a dedicated feature surface in the Issuer Trust / Components area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/trust/issuers` +- `/administration/trust/issuers/list` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/issuer-trust/issuer-trust.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineDashboardComponent.md new file mode 100644 index 000000000..b632f66fb --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineDashboardComponent.md @@ -0,0 +1,47 @@ +# JobEngineDashboardComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Jobengine` +- Source: `features/jobengine/jobengine-dashboard.component.ts` +- Selector: `app-jobengine-dashboard` + +## What Is It? +Job Engine Dashboard appears to be a landing or overview surface in the Jobengine area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/jobengine` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/operations.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineJobDetailComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineJobDetailComponent.md new file mode 100644 index 000000000..75b53f9da --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineJobDetailComponent.md @@ -0,0 +1,47 @@ +# JobEngineJobDetailComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Jobengine` +- Source: `features/jobengine/jobengine-job-detail.component.ts` +- Selector: `app-jobengine-job-detail` + +## What Is It? +Job Engine Job Detail appears to be a detail panel or supporting drill-down surface in the Jobengine area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/orchestrator/jobs/:jobId` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/operations.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineJobsComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineJobsComponent.md new file mode 100644 index 000000000..be70eb574 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineJobsComponent.md @@ -0,0 +1,47 @@ +# JobEngineJobsComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Jobengine` +- Source: `features/jobengine/jobengine-jobs.component.ts` +- Selector: `app-jobengine-jobs` + +## What Is It? +Job Engine Jobs appears to be a dedicated feature surface in the Jobengine area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/jobengine/jobs` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/operations.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineQuotasComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineQuotasComponent.md new file mode 100644 index 000000000..24e28e903 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/jobengine/JobEngineQuotasComponent.md @@ -0,0 +1,47 @@ +# JobEngineQuotasComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Jobengine` +- Source: `features/jobengine/jobengine-quotas.component.ts` +- Selector: `app-jobengine-quotas` + +## What Is It? +Job Engine Quotas appears to be a dedicated feature surface in the Jobengine area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/jobengine/quotas` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/operations.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/mission-control/MissionActivityPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/mission-control/MissionActivityPageComponent.md new file mode 100644 index 000000000..3ec0836f4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/mission-control/MissionActivityPageComponent.md @@ -0,0 +1,48 @@ +# MissionActivityPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Mission Control` +- Source: `features/mission-control/mission-activity-page.component.ts` +- Selector: `app-mission-activity-page` + +## What Is It? +Mission Activity Page appears to be a dedicated feature surface in the Mission Control area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/**/activity` +- `/mission-control/activity` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/mission-control.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/mission-control/MissionAlertsPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/mission-control/MissionAlertsPageComponent.md new file mode 100644 index 000000000..087e3ac44 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/mission-control/MissionAlertsPageComponent.md @@ -0,0 +1,48 @@ +# MissionAlertsPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Mission Control` +- Source: `features/mission-control/mission-alerts-page.component.ts` +- Selector: `app-mission-alerts-page` + +## What Is It? +Mission Alerts Page appears to be a monitoring and alerting surface in the Mission Control area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/**/alerts` +- `/mission-control/alerts` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/mission-control.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/notify/NotifyPanelComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/notify/NotifyPanelComponent.md new file mode 100644 index 000000000..dd5b2ac7a --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/notify/NotifyPanelComponent.md @@ -0,0 +1,47 @@ +# NotifyPanelComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Notify` +- Source: `features/notify/notify-panel.component.ts` +- Selector: `app-notify-panel` + +## What Is It? +Notify Panel appears to be a detail panel or supporting drill-down surface in the Notify area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/notifications` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/operations.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/BundleManagementComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/BundleManagementComponent.md new file mode 100644 index 000000000..08cc3b084 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/BundleManagementComponent.md @@ -0,0 +1,47 @@ +# BundleManagementComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Offline Kit` +- Source: `features/offline-kit/components/bundle-management.component.ts` +- Selector: `app-bundle-management` + +## What Is It? +Bundle Management appears to be a dedicated feature surface in the Offline Kit / Components area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/offline-kit/bundles` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/offline-kit/offline-kit.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/JwksManagementComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/JwksManagementComponent.md new file mode 100644 index 000000000..00ef8058e --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/JwksManagementComponent.md @@ -0,0 +1,47 @@ +# JwksManagementComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Offline Kit` +- Source: `features/offline-kit/components/jwks-management.component.ts` +- Selector: `app-jwks-management` + +## What Is It? +Jwks Management appears to be a dedicated feature surface in the Offline Kit / Components area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/offline-kit/jwks` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/offline-kit/offline-kit.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/OfflineDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/OfflineDashboardComponent.md new file mode 100644 index 000000000..863bc3a88 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/OfflineDashboardComponent.md @@ -0,0 +1,52 @@ +# OfflineDashboardComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Offline Kit` +- Source: `features/offline-kit/components/offline-dashboard.component.ts` +- Selector: `app-offline-dashboard` + +## What Is It? +Offline Dashboard appears to be a landing or overview surface in the Offline Kit / Components area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/offline` +- `/ops/operations/offline-kit` +- `/ops/operations/offline-kit/dashboard` +- `/settings/offline` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/offline-kit/offline-kit.routes.ts` +- `src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts` +- `src/Web/StellaOps.Web/src/app/routes/administration.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/VerificationCenterComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/VerificationCenterComponent.md new file mode 100644 index 000000000..0e216b6ab --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/offline-kit/components/VerificationCenterComponent.md @@ -0,0 +1,47 @@ +# VerificationCenterComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Offline Kit` +- Source: `features/offline-kit/components/verification-center.component.ts` +- Selector: `app-verification-center` + +## What Is It? +Verification Center appears to be a dedicated feature surface in the Offline Kit / Components area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/offline-kit/verify` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/offline-kit/offline-kit.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/pack-registry/PackRegistryBrowserComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/pack-registry/PackRegistryBrowserComponent.md new file mode 100644 index 000000000..30f4368dd --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/pack-registry/PackRegistryBrowserComponent.md @@ -0,0 +1,47 @@ +# PackRegistryBrowserComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Pack Registry` +- Source: `features/pack-registry/pack-registry-browser.component.ts` +- Selector: `app-pack-registry-browser` + +## What Is It? +Pack Registry Browser appears to be a dedicated feature surface in the Pack Registry area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/packs` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/pack-registry/pack-registry.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-health/IncidentTimelineComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-health/IncidentTimelineComponent.md new file mode 100644 index 000000000..49bc4be2a --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-health/IncidentTimelineComponent.md @@ -0,0 +1,47 @@ +# IncidentTimelineComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Platform Health` +- Source: `features/platform-health/incident-timeline.component.ts` +- Selector: `app-incident-timeline` + +## What Is It? +Incident Timeline appears to be a visualization or exploration surface in the Platform Health area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/health-slo/incidents` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform-health/platform-health.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-health/PlatformHealthDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-health/PlatformHealthDashboardComponent.md new file mode 100644 index 000000000..c45bafcc0 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-health/PlatformHealthDashboardComponent.md @@ -0,0 +1,47 @@ +# PlatformHealthDashboardComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Platform Health` +- Source: `features/platform-health/platform-health-dashboard.component.ts` +- Selector: `app-platform-health-dashboard` + +## What Is It? +Platform Health Dashboard appears to be a landing or overview surface in the Platform Health area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/health-slo` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform-health/platform-health.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-health/ServiceDetailComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-health/ServiceDetailComponent.md new file mode 100644 index 000000000..c7ad5eb65 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-health/ServiceDetailComponent.md @@ -0,0 +1,47 @@ +# ServiceDetailComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Platform Health` +- Source: `features/platform-health/service-detail.component.ts` +- Selector: `app-service-detail` + +## What Is It? +Service Detail appears to be a detail panel or supporting drill-down surface in the Platform Health area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/health-slo/services/:serviceName` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform-health/platform-health.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/DataIntegrityJobRunDetailPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/DataIntegrityJobRunDetailPageComponent.md new file mode 100644 index 000000000..f1d229c3d --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/DataIntegrityJobRunDetailPageComponent.md @@ -0,0 +1,47 @@ +# DataIntegrityJobRunDetailPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Platform Ops Legacy` +- Source: `features/platform-ops/data-integrity/job-run-detail-page.component.ts` +- Selector: `app-data-integrity-job-run-detail-page` + +## What Is It? +Data Integrity Job Run Detail Page appears to be a detail panel or supporting drill-down surface in the Platform Ops / Data Integrity area. + +## Why It Likely Fell Out Of The Product +Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind. + +## What Is Worth Preserving +Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + +## Likely Successor Or Merge Target +/ops and /ops/platform-setup + +## Static Evidence +### Routed paths +- `/ops/operations/data-integrity/nightly-ops/:runId` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/DataQualitySlosPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/DataQualitySlosPageComponent.md new file mode 100644 index 000000000..a8ae20c29 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/DataQualitySlosPageComponent.md @@ -0,0 +1,47 @@ +# DataQualitySlosPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Platform Ops Legacy` +- Source: `features/platform-ops/data-integrity/data-quality-slos-page.component.ts` +- Selector: `app-data-quality-slos-page` + +## What Is It? +Data Quality Slos Page appears to be a dedicated feature surface in the Platform Ops / Data Integrity area. + +## Why It Likely Fell Out Of The Product +Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind. + +## What Is Worth Preserving +Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + +## Likely Successor Or Merge Target +/ops and /ops/platform-setup + +## Static Evidence +### Routed paths +- `/ops/operations/data-integrity/slos` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/DlqReplaysPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/DlqReplaysPageComponent.md new file mode 100644 index 000000000..066a7cd96 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/DlqReplaysPageComponent.md @@ -0,0 +1,47 @@ +# DlqReplaysPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Platform Ops Legacy` +- Source: `features/platform-ops/data-integrity/dlq-replays-page.component.ts` +- Selector: `app-dlq-replays-page` + +## What Is It? +Dlq Replays Page appears to be a dedicated feature surface in the Platform Ops / Data Integrity area. + +## Why It Likely Fell Out Of The Product +Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind. + +## What Is Worth Preserving +Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + +## Likely Successor Or Merge Target +/ops and /ops/platform-setup + +## Static Evidence +### Routed paths +- `/ops/operations/data-integrity/dlq` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/FeedsFreshnessPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/FeedsFreshnessPageComponent.md new file mode 100644 index 000000000..094f79c99 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/FeedsFreshnessPageComponent.md @@ -0,0 +1,47 @@ +# FeedsFreshnessPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Platform Ops Legacy` +- Source: `features/platform-ops/data-integrity/feeds-freshness-page.component.ts` +- Selector: `app-feeds-freshness-page` + +## What Is It? +Feeds Freshness Page appears to be a dedicated feature surface in the Platform Ops / Data Integrity area. + +## Why It Likely Fell Out Of The Product +Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind. + +## What Is Worth Preserving +Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + +## Likely Successor Or Merge Target +/ops and /ops/platform-setup + +## Static Evidence +### Routed paths +- `/ops/operations/data-integrity/feeds-freshness` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/IntegrationConnectivityPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/IntegrationConnectivityPageComponent.md new file mode 100644 index 000000000..459e9b299 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/IntegrationConnectivityPageComponent.md @@ -0,0 +1,47 @@ +# IntegrationConnectivityPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Platform Ops Legacy` +- Source: `features/platform-ops/data-integrity/integration-connectivity-page.component.ts` +- Selector: `app-integration-connectivity-page` + +## What Is It? +Integration Connectivity Page appears to be a dedicated feature surface in the Platform Ops / Data Integrity area. + +## Why It Likely Fell Out Of The Product +Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind. + +## What Is Worth Preserving +Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + +## Likely Successor Or Merge Target +/ops and /ops/platform-setup + +## Static Evidence +### Routed paths +- `/ops/operations/data-integrity/integration-connectivity` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/NightlyOpsReportPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/NightlyOpsReportPageComponent.md new file mode 100644 index 000000000..1f3475d62 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/NightlyOpsReportPageComponent.md @@ -0,0 +1,47 @@ +# NightlyOpsReportPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Platform Ops Legacy` +- Source: `features/platform-ops/data-integrity/nightly-ops-report-page.component.ts` +- Selector: `app-nightly-ops-report-page` + +## What Is It? +Nightly Ops Report Page appears to be a dedicated feature surface in the Platform Ops / Data Integrity area. + +## Why It Likely Fell Out Of The Product +Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind. + +## What Is Worth Preserving +Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + +## Likely Successor Or Merge Target +/ops and /ops/platform-setup + +## Static Evidence +### Routed paths +- `/ops/operations/data-integrity/nightly-ops` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/ReachabilityIngestHealthPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/ReachabilityIngestHealthPageComponent.md new file mode 100644 index 000000000..267a764fc --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/ReachabilityIngestHealthPageComponent.md @@ -0,0 +1,47 @@ +# ReachabilityIngestHealthPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Platform Ops Legacy` +- Source: `features/platform-ops/data-integrity/reachability-ingest-health-page.component.ts` +- Selector: `app-reachability-ingest-health-page` + +## What Is It? +Reachability Ingest Health Page appears to be a dedicated feature surface in the Platform Ops / Data Integrity area. + +## Why It Likely Fell Out Of The Product +Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind. + +## What Is Worth Preserving +Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + +## Likely Successor Or Merge Target +/ops and /ops/platform-setup + +## Static Evidence +### Routed paths +- `/ops/operations/data-integrity/reachability-ingest` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/ScanPipelineHealthPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/ScanPipelineHealthPageComponent.md new file mode 100644 index 000000000..043c66d6f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform-ops/data-integrity/ScanPipelineHealthPageComponent.md @@ -0,0 +1,47 @@ +# ScanPipelineHealthPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Platform Ops Legacy` +- Source: `features/platform-ops/data-integrity/scan-pipeline-health-page.component.ts` +- Selector: `app-scan-pipeline-health-page` + +## What Is It? +Scan Pipeline Health Page appears to be a dedicated feature surface in the Platform Ops / Data Integrity area. + +## Why It Likely Fell Out Of The Product +Ops views were consolidated under the newer platform and operations route families, leaving the older platform-ops pages behind. + +## What Is Worth Preserving +Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + +## Likely Successor Or Merge Target +/ops and /ops/platform-setup + +## Static Evidence +### Routed paths +- `/ops/operations/data-integrity/scan-pipeline` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupDefaultsGuardrailsPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupDefaultsGuardrailsPageComponent.md new file mode 100644 index 000000000..12c79ffff --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupDefaultsGuardrailsPageComponent.md @@ -0,0 +1,47 @@ +# PlatformSetupDefaultsGuardrailsPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Platform` +- Source: `features/platform/setup/platform-setup-defaults-guardrails-page.component.ts` +- Selector: `app-platform-setup-defaults-guardrails-page` + +## What Is It? +Platform Setup Defaults Guardrails Page appears to be a setup or guided workflow surface in the Platform / Setup area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/platform-setup/defaults-guardrails` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupFeedPolicyPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupFeedPolicyPageComponent.md new file mode 100644 index 000000000..859a2b041 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupFeedPolicyPageComponent.md @@ -0,0 +1,47 @@ +# PlatformSetupFeedPolicyPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Platform` +- Source: `features/platform/setup/platform-setup-feed-policy-page.component.ts` +- Selector: `app-platform-setup-feed-policy-page` + +## What Is It? +Platform Setup Feed Policy Page appears to be a setup or guided workflow surface in the Platform / Setup area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/platform-setup/policy-bindings` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupGateProfilesPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupGateProfilesPageComponent.md new file mode 100644 index 000000000..30d152bda --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupGateProfilesPageComponent.md @@ -0,0 +1,47 @@ +# PlatformSetupGateProfilesPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Platform` +- Source: `features/platform/setup/platform-setup-gate-profiles-page.component.ts` +- Selector: `app-platform-setup-gate-profiles-page` + +## What Is It? +Platform Setup Gate Profiles Page appears to be a setup or guided workflow surface in the Platform / Setup area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/platform-setup/gate-profiles` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupPromotionPathsPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupPromotionPathsPageComponent.md new file mode 100644 index 000000000..223eb9efb --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupPromotionPathsPageComponent.md @@ -0,0 +1,47 @@ +# PlatformSetupPromotionPathsPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Platform` +- Source: `features/platform/setup/platform-setup-promotion-paths-page.component.ts` +- Selector: `app-platform-setup-promotion-paths-page` + +## What Is It? +Platform Setup Promotion Paths Page appears to be a setup or guided workflow surface in the Platform / Setup area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/platform-setup/promotion-paths` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupRegionsEnvironmentsPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupRegionsEnvironmentsPageComponent.md new file mode 100644 index 000000000..89c0d35f1 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupRegionsEnvironmentsPageComponent.md @@ -0,0 +1,47 @@ +# PlatformSetupRegionsEnvironmentsPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Platform` +- Source: `features/platform/setup/platform-setup-regions-environments-page.component.ts` +- Selector: `app-platform-setup-regions-environments-page` + +## What Is It? +Platform Setup Regions Environments Page appears to be a setup or guided workflow surface in the Platform / Setup area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/platform-setup/regions-environments` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupReleaseTemplatesPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupReleaseTemplatesPageComponent.md new file mode 100644 index 000000000..f3e3ff10c --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupReleaseTemplatesPageComponent.md @@ -0,0 +1,47 @@ +# PlatformSetupReleaseTemplatesPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Platform` +- Source: `features/platform/setup/platform-setup-release-templates-page.component.ts` +- Selector: `app-platform-setup-release-templates-page` + +## What Is It? +Platform Setup Release Templates Page appears to be a setup or guided workflow surface in the Platform / Setup area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/platform-setup/release-templates` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupWorkflowsGatesPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupWorkflowsGatesPageComponent.md new file mode 100644 index 000000000..21ea50f48 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/platform/setup/PlatformSetupWorkflowsGatesPageComponent.md @@ -0,0 +1,47 @@ +# PlatformSetupWorkflowsGatesPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Platform` +- Source: `features/platform/setup/platform-setup-workflows-gates-page.component.ts` +- Selector: `app-platform-setup-workflows-gates-page` + +## What Is It? +Platform Setup Workflows Gates Page appears to be a setup or guided workflow surface in the Platform / Setup area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/platform-setup/workflows-gates` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/ConflictResolutionWizardComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/ConflictResolutionWizardComponent.md new file mode 100644 index 000000000..fe83e61cb --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/ConflictResolutionWizardComponent.md @@ -0,0 +1,49 @@ +# ConflictResolutionWizardComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Policy Governance` +- Source: `features/policy-governance/conflict-resolution-wizard.component.ts` +- Selector: `app-conflict-resolution-wizard` + +## What Is It? +Conflict Resolution Wizard appears to be a setup or guided workflow surface in the Policy Governance area. + +## Why It Likely Fell Out Of The Product +These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing. + +## What Is Worth Preserving +Preserve the full governance branch; the main question is wiring quality, not product value. + +## Likely Successor Or Merge Target +/admin/policy/governance + +## Static Evidence +### Routed paths +- `/administration/policy-governance/conflicts/:conflictId/resolve` +- `/administration/policy/governance/conflicts/:conflictId/resolve` +- `/ops/policy/conflicts/:conflictId/resolve` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../v2-rewire/source-of-truth.md) +- [docs/contracts/policy-studio.md](../../../../../../../contracts/policy-studio.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/GovernanceAuditComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/GovernanceAuditComponent.md new file mode 100644 index 000000000..318a224bf --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/GovernanceAuditComponent.md @@ -0,0 +1,49 @@ +# GovernanceAuditComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Policy Governance` +- Source: `features/policy-governance/governance-audit.component.ts` +- Selector: `app-governance-audit` + +## What Is It? +Governance Audit appears to be a audit and evidence surface in the Policy Governance area. + +## Why It Likely Fell Out Of The Product +These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing. + +## What Is Worth Preserving +Preserve the full governance branch; the main question is wiring quality, not product value. + +## Likely Successor Or Merge Target +/admin/policy/governance + +## Static Evidence +### Routed paths +- `/administration/policy-governance/audit` +- `/administration/policy/governance/audit` +- `/ops/policy/audit` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../v2-rewire/source-of-truth.md) +- [docs/contracts/policy-studio.md](../../../../../../../contracts/policy-studio.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/ImpactPreviewComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/ImpactPreviewComponent.md new file mode 100644 index 000000000..5f11d519b --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/ImpactPreviewComponent.md @@ -0,0 +1,49 @@ +# ImpactPreviewComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Policy Governance` +- Source: `features/policy-governance/impact-preview.component.ts` +- Selector: `app-impact-preview` + +## What Is It? +Impact Preview appears to be a approval and review surface in the Policy Governance area. + +## Why It Likely Fell Out Of The Product +These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing. + +## What Is Worth Preserving +Preserve the full governance branch; the main question is wiring quality, not product value. + +## Likely Successor Or Merge Target +/admin/policy/governance + +## Static Evidence +### Routed paths +- `/administration/policy-governance/impact-preview` +- `/administration/policy/governance/impact-preview` +- `/ops/policy/impact-preview` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../v2-rewire/source-of-truth.md) +- [docs/contracts/policy-studio.md](../../../../../../../contracts/policy-studio.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/PolicyConflictDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/PolicyConflictDashboardComponent.md new file mode 100644 index 000000000..2ef33cd69 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/PolicyConflictDashboardComponent.md @@ -0,0 +1,49 @@ +# PolicyConflictDashboardComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Policy Governance` +- Source: `features/policy-governance/policy-conflict-dashboard.component.ts` +- Selector: `app-policy-conflict-dashboard` + +## What Is It? +Policy Conflict Dashboard appears to be a landing or overview surface in the Policy Governance area. + +## Why It Likely Fell Out Of The Product +These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing. + +## What Is Worth Preserving +Preserve the full governance branch; the main question is wiring quality, not product value. + +## Likely Successor Or Merge Target +/admin/policy/governance + +## Static Evidence +### Routed paths +- `/administration/policy-governance/conflicts` +- `/administration/policy/governance/conflicts` +- `/ops/policy/conflicts` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../v2-rewire/source-of-truth.md) +- [docs/contracts/policy-studio.md](../../../../../../../contracts/policy-studio.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/PolicyValidatorComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/PolicyValidatorComponent.md new file mode 100644 index 000000000..59d371b76 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/PolicyValidatorComponent.md @@ -0,0 +1,49 @@ +# PolicyValidatorComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Policy Governance` +- Source: `features/policy-governance/policy-validator.component.ts` +- Selector: `app-policy-validator` + +## What Is It? +Policy Validator appears to be a dedicated feature surface in the Policy Governance area. + +## Why It Likely Fell Out Of The Product +These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing. + +## What Is Worth Preserving +Preserve the full governance branch; the main question is wiring quality, not product value. + +## Likely Successor Or Merge Target +/admin/policy/governance + +## Static Evidence +### Routed paths +- `/administration/policy-governance/validator` +- `/administration/policy/governance/validator` +- `/ops/policy/validator` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../v2-rewire/source-of-truth.md) +- [docs/contracts/policy-studio.md](../../../../../../../contracts/policy-studio.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/RiskBudgetConfigComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/RiskBudgetConfigComponent.md new file mode 100644 index 000000000..674c82bf3 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/RiskBudgetConfigComponent.md @@ -0,0 +1,52 @@ +# RiskBudgetConfigComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Policy Governance` +- Source: `features/policy-governance/risk-budget-config.component.ts` +- Selector: `app-risk-budget-config` + +## What Is It? +Risk Budget Config appears to be a dedicated feature surface in the Policy Governance area. + +## Why It Likely Fell Out Of The Product +These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing. + +## What Is Worth Preserving +Preserve the full governance branch; the main question is wiring quality, not product value. + +## Likely Successor Or Merge Target +/admin/policy/governance + +## Static Evidence +### Routed paths +- `/administration/policy-governance/budget/config` +- `/administration/policy-governance/risk-budget/config` +- `/administration/policy/governance/budget/config` +- `/administration/policy/governance/risk-budget/config` +- `/ops/policy/budget/config` +- `/ops/policy/risk-budget/config` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../v2-rewire/source-of-truth.md) +- [docs/contracts/policy-studio.md](../../../../../../../contracts/policy-studio.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/RiskProfileEditorComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/RiskProfileEditorComponent.md new file mode 100644 index 000000000..a2341bc6e --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/RiskProfileEditorComponent.md @@ -0,0 +1,52 @@ +# RiskProfileEditorComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Policy Governance` +- Source: `features/policy-governance/risk-profile-editor.component.ts` +- Selector: `app-risk-profile-editor` + +## What Is It? +Risk Profile Editor appears to be a authoring or editing surface in the Policy Governance area. + +## Why It Likely Fell Out Of The Product +These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing. + +## What Is Worth Preserving +Preserve the full governance branch; the main question is wiring quality, not product value. + +## Likely Successor Or Merge Target +/admin/policy/governance + +## Static Evidence +### Routed paths +- `/administration/policy-governance/profiles/:profileId` +- `/administration/policy-governance/profiles/new` +- `/administration/policy/governance/profiles/:profileId` +- `/administration/policy/governance/profiles/new` +- `/ops/policy/profiles/:profileId` +- `/ops/policy/profiles/new` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../v2-rewire/source-of-truth.md) +- [docs/contracts/policy-studio.md](../../../../../../../contracts/policy-studio.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/RiskProfileListComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/RiskProfileListComponent.md new file mode 100644 index 000000000..417ea22c9 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/RiskProfileListComponent.md @@ -0,0 +1,49 @@ +# RiskProfileListComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Policy Governance` +- Source: `features/policy-governance/risk-profile-list.component.ts` +- Selector: `app-risk-profile-list` + +## What Is It? +Risk Profile List appears to be a dedicated feature surface in the Policy Governance area. + +## Why It Likely Fell Out Of The Product +These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing. + +## What Is Worth Preserving +Preserve the full governance branch; the main question is wiring quality, not product value. + +## Likely Successor Or Merge Target +/admin/policy/governance + +## Static Evidence +### Routed paths +- `/administration/policy-governance/profiles` +- `/administration/policy/governance/profiles` +- `/ops/policy/profiles` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../v2-rewire/source-of-truth.md) +- [docs/contracts/policy-studio.md](../../../../../../../contracts/policy-studio.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SchemaDocsComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SchemaDocsComponent.md new file mode 100644 index 000000000..f1209cd81 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SchemaDocsComponent.md @@ -0,0 +1,49 @@ +# SchemaDocsComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Policy Governance` +- Source: `features/policy-governance/schema-docs.component.ts` +- Selector: `app-schema-docs` + +## What Is It? +Schema Docs appears to be a dedicated feature surface in the Policy Governance area. + +## Why It Likely Fell Out Of The Product +These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing. + +## What Is Worth Preserving +Preserve the full governance branch; the main question is wiring quality, not product value. + +## Likely Successor Or Merge Target +/admin/policy/governance + +## Static Evidence +### Routed paths +- `/administration/policy-governance/schema-docs` +- `/administration/policy/governance/schema-docs` +- `/ops/policy/schema-docs` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../v2-rewire/source-of-truth.md) +- [docs/contracts/policy-studio.md](../../../../../../../contracts/policy-studio.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SchemaPlaygroundComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SchemaPlaygroundComponent.md new file mode 100644 index 000000000..71f5dc662 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SchemaPlaygroundComponent.md @@ -0,0 +1,49 @@ +# SchemaPlaygroundComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Policy Governance` +- Source: `features/policy-governance/schema-playground.component.ts` +- Selector: `app-schema-playground` + +## What Is It? +Schema Playground appears to be a dedicated feature surface in the Policy Governance area. + +## Why It Likely Fell Out Of The Product +These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing. + +## What Is Worth Preserving +Preserve the full governance branch; the main question is wiring quality, not product value. + +## Likely Successor Or Merge Target +/admin/policy/governance + +## Static Evidence +### Routed paths +- `/administration/policy-governance/schema-playground` +- `/administration/policy/governance/schema-playground` +- `/ops/policy/schema-playground` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../v2-rewire/source-of-truth.md) +- [docs/contracts/policy-studio.md](../../../../../../../contracts/policy-studio.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SealedModeControlComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SealedModeControlComponent.md new file mode 100644 index 000000000..9047221bc --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SealedModeControlComponent.md @@ -0,0 +1,49 @@ +# SealedModeControlComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Policy Governance` +- Source: `features/policy-governance/sealed-mode-control.component.ts` +- Selector: `app-sealed-mode-control` + +## What Is It? +Sealed Mode Control appears to be a dedicated feature surface in the Policy Governance area. + +## Why It Likely Fell Out Of The Product +These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing. + +## What Is Worth Preserving +Preserve the full governance branch; the main question is wiring quality, not product value. + +## Likely Successor Or Merge Target +/admin/policy/governance + +## Static Evidence +### Routed paths +- `/administration/policy-governance/sealed-mode` +- `/administration/policy/governance/sealed-mode` +- `/ops/policy/sealed-mode` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../v2-rewire/source-of-truth.md) +- [docs/contracts/policy-studio.md](../../../../../../../contracts/policy-studio.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SealedModeOverridesComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SealedModeOverridesComponent.md new file mode 100644 index 000000000..ae9b7d62b --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/SealedModeOverridesComponent.md @@ -0,0 +1,49 @@ +# SealedModeOverridesComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Policy Governance` +- Source: `features/policy-governance/sealed-mode-overrides.component.ts` +- Selector: `app-sealed-mode-overrides` + +## What Is It? +Sealed Mode Overrides appears to be a dedicated feature surface in the Policy Governance area. + +## Why It Likely Fell Out Of The Product +These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing. + +## What Is Worth Preserving +Preserve the full governance branch; the main question is wiring quality, not product value. + +## Likely Successor Or Merge Target +/admin/policy/governance + +## Static Evidence +### Routed paths +- `/administration/policy-governance/sealed-mode/overrides` +- `/administration/policy/governance/sealed-mode/overrides` +- `/ops/policy/sealed-mode/overrides` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../v2-rewire/source-of-truth.md) +- [docs/contracts/policy-studio.md](../../../../../../../contracts/policy-studio.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/StalenessConfigComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/StalenessConfigComponent.md new file mode 100644 index 000000000..c8cf7289f --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/StalenessConfigComponent.md @@ -0,0 +1,49 @@ +# StalenessConfigComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Policy Governance` +- Source: `features/policy-governance/staleness-config.component.ts` +- Selector: `app-staleness-config` + +## What Is It? +Staleness Config appears to be a dedicated feature surface in the Policy Governance area. + +## Why It Likely Fell Out Of The Product +These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing. + +## What Is Worth Preserving +Preserve the full governance branch; the main question is wiring quality, not product value. + +## Likely Successor Or Merge Target +/admin/policy/governance + +## Static Evidence +### Routed paths +- `/administration/policy-governance/staleness` +- `/administration/policy/governance/staleness` +- `/ops/policy/staleness` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../v2-rewire/source-of-truth.md) +- [docs/contracts/policy-studio.md](../../../../../../../contracts/policy-studio.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/TrustWeightingComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/TrustWeightingComponent.md new file mode 100644 index 000000000..88a0fa157 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-governance/TrustWeightingComponent.md @@ -0,0 +1,49 @@ +# TrustWeightingComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Policy Governance` +- Source: `features/policy-governance/trust-weighting.component.ts` +- Selector: `app-trust-weighting` + +## What Is It? +Trust Weighting appears to be a dedicated feature surface in the Policy Governance area. + +## Why It Likely Fell Out Of The Product +These pages are routed but some leaves are weakly surfaced in static analysis because their navigation appears to rely on local tabs or relative routing. + +## What Is Worth Preserving +Preserve the full governance branch; the main question is wiring quality, not product value. + +## Likely Successor Or Merge Target +/admin/policy/governance + +## Static Evidence +### Routed paths +- `/administration/policy-governance/trust-weights` +- `/administration/policy/governance/trust-weights` +- `/ops/policy/trust-weights` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../v2-rewire/source-of-truth.md) +- [docs/contracts/policy-studio.md](../../../../../../../contracts/policy-studio.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-studio/workspace/PolicyWorkspaceComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-studio/workspace/PolicyWorkspaceComponent.md new file mode 100644 index 000000000..dff24cbf3 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/policy-studio/workspace/PolicyWorkspaceComponent.md @@ -0,0 +1,49 @@ +# PolicyWorkspaceComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `merge` +- Preservation value: `high` +- Feature branch: `Policy Studio Legacy` +- Source: `features/policy-studio/workspace/policy-workspace.component.ts` +- Selector: `app-policy-workspace` + +## What Is It? +Policy Workspace appears to be a dedicated feature surface in the Policy Studio / Workspace area. + +## Why It Likely Fell Out Of The Product +The current route tree moved policy work into newer governance and simulation surfaces, leaving the old `/policy-studio` family unmounted. + +## What Is Worth Preserving +Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + +## Likely Successor Or Merge Target +/admin/policy/governance and /admin/policy/simulation + +## Static Evidence +### Routed paths +- `/administration/policy/packs` +- `/administration/policy/packs/:packId` +- `/administration/policy/packs/:packId/:page` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/administration.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/contracts/policy-studio.md](../../../../../../../../contracts/policy-studio.md) +- [docs/modules/ui/v2-rewire/source-of-truth.md](../../../../../../v2-rewire/source-of-truth.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/QuotaAlertConfigComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/QuotaAlertConfigComponent.md new file mode 100644 index 000000000..67dde854d --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/QuotaAlertConfigComponent.md @@ -0,0 +1,47 @@ +# QuotaAlertConfigComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Quota Dashboard` +- Source: `features/quota-dashboard/quota-alert-config.component.ts` +- Selector: `app-quota-alert-config` + +## What Is It? +Quota Alert Config appears to be a monitoring and alerting surface in the Quota Dashboard area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/quotas/alerts` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/quota-dashboard/quota.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/QuotaForecastComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/QuotaForecastComponent.md new file mode 100644 index 000000000..b447dc19e --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/QuotaForecastComponent.md @@ -0,0 +1,47 @@ +# QuotaForecastComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Quota Dashboard` +- Source: `features/quota-dashboard/quota-forecast.component.ts` +- Selector: `app-quota-forecast` + +## What Is It? +Quota Forecast appears to be a dedicated feature surface in the Quota Dashboard area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/quotas/forecast` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/quota-dashboard/quota.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/QuotaReportExportComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/QuotaReportExportComponent.md new file mode 100644 index 000000000..ddf1c3761 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/QuotaReportExportComponent.md @@ -0,0 +1,47 @@ +# QuotaReportExportComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Quota Dashboard` +- Source: `features/quota-dashboard/quota-report-export.component.ts` +- Selector: `app-quota-report-export` + +## What Is It? +Quota Report Export appears to be a dedicated feature surface in the Quota Dashboard area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/quotas/reports` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/quota-dashboard/quota.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/TenantQuotaDetailComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/TenantQuotaDetailComponent.md new file mode 100644 index 000000000..cab4c862e --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/TenantQuotaDetailComponent.md @@ -0,0 +1,47 @@ +# TenantQuotaDetailComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Quota Dashboard` +- Source: `features/quota-dashboard/tenant-quota-detail.component.ts` +- Selector: `app-tenant-quota-detail` + +## What Is It? +Tenant Quota Detail appears to be a detail panel or supporting drill-down surface in the Quota Dashboard area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/quotas/tenants/:tenantId` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/quota-dashboard/quota.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/TenantQuotaTableComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/TenantQuotaTableComponent.md new file mode 100644 index 000000000..07ac49750 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/TenantQuotaTableComponent.md @@ -0,0 +1,47 @@ +# TenantQuotaTableComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Quota Dashboard` +- Source: `features/quota-dashboard/tenant-quota-table.component.ts` +- Selector: `app-tenant-quota-table` + +## What Is It? +Tenant Quota Table appears to be a dedicated feature surface in the Quota Dashboard area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/quotas/tenants` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/quota-dashboard/quota.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/ThrottleContextComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/ThrottleContextComponent.md new file mode 100644 index 000000000..c92228d8c --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/quota-dashboard/ThrottleContextComponent.md @@ -0,0 +1,47 @@ +# ThrottleContextComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Quota Dashboard` +- Source: `features/quota-dashboard/throttle-context.component.ts` +- Selector: `app-throttle-context` + +## What Is It? +Throttle Context appears to be a dedicated feature surface in the Quota Dashboard area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/quotas/throttle` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/quota-dashboard/quota.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/release-orchestrator/workflows/workflow-editor/WorkflowEditorComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/release-orchestrator/workflows/workflow-editor/WorkflowEditorComponent.md new file mode 100644 index 000000000..aeefb6ae1 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/release-orchestrator/workflows/workflow-editor/WorkflowEditorComponent.md @@ -0,0 +1,47 @@ +# WorkflowEditorComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Release Orchestrator` +- Source: `features/release-orchestrator/workflows/workflow-editor/workflow-editor.component.ts` +- Selector: `app-workflow-editor` + +## What Is It? +Workflow Editor appears to be a authoring or editing surface in the Release Orchestrator / Workflows / Workflow Editor area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/workflows/:id` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/release-orchestrator/workflows/workflows.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/releases/HotfixDetailPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/releases/HotfixDetailPageComponent.md new file mode 100644 index 000000000..c0ee26042 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/releases/HotfixDetailPageComponent.md @@ -0,0 +1,47 @@ +# HotfixDetailPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Releases` +- Source: `features/releases/hotfix-detail-page.component.ts` +- Selector: `app-hotfix-detail-page` + +## What Is It? +Hotfix Detail Page appears to be a detail panel or supporting drill-down surface in the Releases area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/releases/hotfixes/:hotfixId` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/releases.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/releases/ReleaseOpsOverviewPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/releases/ReleaseOpsOverviewPageComponent.md new file mode 100644 index 000000000..81419beee --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/releases/ReleaseOpsOverviewPageComponent.md @@ -0,0 +1,47 @@ +# ReleaseOpsOverviewPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Releases` +- Source: `features/releases/release-ops-overview-page.component.ts` +- Selector: `app-release-ops-overview-page` + +## What Is It? +Release Ops Overview Page appears to be a landing or overview surface in the Releases area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/releases/overview` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/releases.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/sbom-sources/components/source-wizard/SourceWizardComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/sbom-sources/components/source-wizard/SourceWizardComponent.md new file mode 100644 index 000000000..c2aafc7d7 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/sbom-sources/components/source-wizard/SourceWizardComponent.md @@ -0,0 +1,50 @@ +# SourceWizardComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Sbom Sources` +- Source: `features/sbom-sources/components/source-wizard/source-wizard.component.ts` +- Selector: `app-source-wizard` + +## What Is It? +Source Wizard appears to be a setup or guided workflow surface in the Sbom Sources / Components / Source Wizard area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/integrations/sbom-sources/:id/edit` +- `/ops/integrations/sbom-sources/new` +- `/setup/integrations/sbom-sources/:id/edit` +- `/setup/integrations/sbom-sources/new` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/sbom-sources/sbom-sources.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/ScannerOpsComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/ScannerOpsComponent.md new file mode 100644 index 000000000..3ce6def28 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/ScannerOpsComponent.md @@ -0,0 +1,47 @@ +# ScannerOpsComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Scanner Ops` +- Source: `features/scanner-ops/scanner-ops.component.ts` +- Selector: `app-scanner-ops` + +## What Is It? +Scanner Ops appears to be a dedicated feature surface in the Scanner Ops area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/scanner-ops` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/scanner-ops/scanner-ops.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/AnalyzerHealthComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/AnalyzerHealthComponent.md new file mode 100644 index 000000000..48b8742a4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/AnalyzerHealthComponent.md @@ -0,0 +1,47 @@ +# AnalyzerHealthComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Scanner Ops` +- Source: `features/scanner-ops/components/analyzer-health.component.ts` +- Selector: `app-analyzer-health` + +## What Is It? +Analyzer Health appears to be a dedicated feature surface in the Scanner Ops / Components area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/scanner-ops/analyzers` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/scanner-ops/scanner-ops.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/BaselineListComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/BaselineListComponent.md new file mode 100644 index 000000000..228f390ca --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/BaselineListComponent.md @@ -0,0 +1,47 @@ +# BaselineListComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Scanner Ops` +- Source: `features/scanner-ops/components/baseline-list.component.ts` +- Selector: `app-baseline-list` + +## What Is It? +Baseline List appears to be a dedicated feature surface in the Scanner Ops / Components area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/scanner-ops/baselines` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/scanner-ops/scanner-ops.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/DeterminismSettingsComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/DeterminismSettingsComponent.md new file mode 100644 index 000000000..7c1bae9e2 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/DeterminismSettingsComponent.md @@ -0,0 +1,47 @@ +# DeterminismSettingsComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Scanner Ops` +- Source: `features/scanner-ops/components/determinism-settings.component.ts` +- Selector: `app-determinism-settings` + +## What Is It? +Determinism Settings appears to be a dedicated feature surface in the Scanner Ops / Components area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/scanner-ops/settings` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/scanner-ops/scanner-ops.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/OfflineKitListComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/OfflineKitListComponent.md new file mode 100644 index 000000000..60cc945d0 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/OfflineKitListComponent.md @@ -0,0 +1,48 @@ +# OfflineKitListComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Scanner Ops` +- Source: `features/scanner-ops/components/offline-kit-list.component.ts` +- Selector: `app-offline-kit-list` + +## What Is It? +Offline Kit List appears to be a dedicated feature surface in the Scanner Ops / Components area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/scanner-ops` +- `/ops/scanner-ops/offline-kits` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/scanner-ops/scanner-ops.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/PerformanceBaselineComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/PerformanceBaselineComponent.md new file mode 100644 index 000000000..166a256e1 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/scanner-ops/components/PerformanceBaselineComponent.md @@ -0,0 +1,47 @@ +# PerformanceBaselineComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Scanner Ops` +- Source: `features/scanner-ops/components/performance-baseline.component.ts` +- Selector: `app-performance-baseline` + +## What Is It? +Performance Baseline appears to be a dedicated feature surface in the Scanner Ops / Components area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/scanner-ops/performance` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/scanner-ops/scanner-ops.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/scheduler-ops/ScheduleManagementComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/scheduler-ops/ScheduleManagementComponent.md new file mode 100644 index 000000000..c5fefc9a7 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/scheduler-ops/ScheduleManagementComponent.md @@ -0,0 +1,47 @@ +# ScheduleManagementComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Scheduler Ops` +- Source: `features/scheduler-ops/schedule-management.component.ts` +- Selector: `app-schedule-management` + +## What Is It? +Schedule Management appears to be a dedicated feature surface in the Scheduler Ops area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/scheduler/schedules` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/scheduler-ops/scheduler-ops.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/scheduler-ops/WorkerFleetComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/scheduler-ops/WorkerFleetComponent.md new file mode 100644 index 000000000..80f0ce8f0 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/scheduler-ops/WorkerFleetComponent.md @@ -0,0 +1,47 @@ +# WorkerFleetComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Scheduler Ops` +- Source: `features/scheduler-ops/worker-fleet.component.ts` +- Selector: `app-worker-fleet` + +## What Is It? +Worker Fleet appears to be a dedicated feature surface in the Scheduler Ops area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/scheduler/workers` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/scheduler-ops/scheduler-ops.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/AdvisorySourcesComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/AdvisorySourcesComponent.md new file mode 100644 index 000000000..cdea33e67 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/AdvisorySourcesComponent.md @@ -0,0 +1,47 @@ +# AdvisorySourcesComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Security Risk` +- Source: `features/security-risk/advisory-sources.component.ts` +- Selector: `app-advisory-sources` + +## What Is It? +Advisory Sources appears to be a dedicated feature surface in the Security Risk area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/security/advisory-sources` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/FindingDetailPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/FindingDetailPageComponent.md new file mode 100644 index 000000000..e4034b299 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/FindingDetailPageComponent.md @@ -0,0 +1,48 @@ +# FindingDetailPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Security Risk` +- Source: `features/security-risk/finding-detail-page.component.ts` +- Selector: `app-finding-detail-page` + +## What Is It? +Finding Detail Page appears to be a detail panel or supporting drill-down surface in the Security Risk area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/security/findings/:findingId` +- `/security/triage/:findingId` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/remediation/RemediationFixDetailComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/remediation/RemediationFixDetailComponent.md new file mode 100644 index 000000000..eff58bfa1 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/remediation/RemediationFixDetailComponent.md @@ -0,0 +1,47 @@ +# RemediationFixDetailComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Security Risk` +- Source: `features/security-risk/remediation/remediation-fix-detail.component.ts` +- Selector: `app-remediation-fix-detail` + +## What Is It? +Remediation Fix Detail appears to be a detail panel or supporting drill-down surface in the Security Risk / Remediation area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/security/remediation/:fixId` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/symbol-sources/SymbolMarketplaceCatalogComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/symbol-sources/SymbolMarketplaceCatalogComponent.md new file mode 100644 index 000000000..84a07b46a --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/symbol-sources/SymbolMarketplaceCatalogComponent.md @@ -0,0 +1,47 @@ +# SymbolMarketplaceCatalogComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Security Risk` +- Source: `features/security-risk/symbol-sources/symbol-marketplace-catalog.component.ts` +- Selector: `app-symbol-marketplace-catalog` + +## What Is It? +Symbol Marketplace Catalog appears to be a dedicated feature surface in the Security Risk / Symbol Sources area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/security/symbol-marketplace` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/symbol-sources/SymbolSourceDetailComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/symbol-sources/SymbolSourceDetailComponent.md new file mode 100644 index 000000000..457b9fb22 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/security-risk/symbol-sources/SymbolSourceDetailComponent.md @@ -0,0 +1,47 @@ +# SymbolSourceDetailComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Security Risk` +- Source: `features/security-risk/symbol-sources/symbol-source-detail.component.ts` +- Selector: `app-symbol-source-detail` + +## What Is It? +Symbol Source Detail appears to be a detail panel or supporting drill-down surface in the Security Risk / Symbol Sources area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/security/symbol-sources/:sourceId` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/security/SbomGraphPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/security/SbomGraphPageComponent.md new file mode 100644 index 000000000..b23827446 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/security/SbomGraphPageComponent.md @@ -0,0 +1,47 @@ +# SbomGraphPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Security` +- Source: `features/security/sbom-graph-page.component.ts` +- Selector: `app-sbom-graph-page` + +## What Is It? +Sbom Graph Page appears to be a visualization or exploration surface in the Security area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/security/sbom` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/AiPreferencesWorkbenchComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/AiPreferencesWorkbenchComponent.md new file mode 100644 index 000000000..2a5abe8cb --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/AiPreferencesWorkbenchComponent.md @@ -0,0 +1,47 @@ +# AiPreferencesWorkbenchComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Settings` +- Source: `features/settings/ai-preferences-workbench.component.ts` +- Selector: `stellaops-ai-preferences-workbench` + +## What Is It? +Ai Preferences Workbench appears to be a dedicated feature surface in the Settings area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/ai-preferences` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/administration.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/integrations/IntegrationDetailPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/integrations/IntegrationDetailPageComponent.md new file mode 100644 index 000000000..441069d12 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/integrations/IntegrationDetailPageComponent.md @@ -0,0 +1,47 @@ +# IntegrationDetailPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Settings` +- Source: `features/settings/integrations/integration-detail-page.component.ts` +- Selector: `app-integration-detail-page` + +## What Is It? +Integration Detail Page appears to be a detail panel or supporting drill-down surface in the Settings / Integrations area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/settings/integrations/:id` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/language/LanguageSettingsPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/language/LanguageSettingsPageComponent.md new file mode 100644 index 000000000..2111e33f0 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/language/LanguageSettingsPageComponent.md @@ -0,0 +1,47 @@ +# LanguageSettingsPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Settings` +- Source: `features/settings/language/language-settings-page.component.ts` +- Selector: `app-language-settings-page` + +## What Is It? +Language Settings Page appears to be a dedicated feature surface in the Settings / Language area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/settings/language` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/notifications/NotificationsSettingsPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/notifications/NotificationsSettingsPageComponent.md new file mode 100644 index 000000000..78f1b9518 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/notifications/NotificationsSettingsPageComponent.md @@ -0,0 +1,47 @@ +# NotificationsSettingsPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Settings` +- Source: `features/settings/notifications/notifications-settings-page.component.ts` +- Selector: `app-notifications-settings-page` + +## What Is It? +Notifications Settings Page appears to be a dedicated feature surface in the Settings / Notifications area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/settings/notifications` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/policy/PolicyGovernanceSettingsPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/policy/PolicyGovernanceSettingsPageComponent.md new file mode 100644 index 000000000..da1656937 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/policy/PolicyGovernanceSettingsPageComponent.md @@ -0,0 +1,49 @@ +# PolicyGovernanceSettingsPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Settings` +- Source: `features/settings/policy/policy-governance-settings-page.component.ts` +- Selector: `app-policy-governance-settings-page` + +## What Is It? +Policy Governance Settings Page appears to be a dedicated feature surface in the Settings / Policy area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/policy` +- `/settings/policy` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts` +- `src/Web/StellaOps.Web/src/app/routes/administration.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/release-control/ReleaseControlSettingsPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/release-control/ReleaseControlSettingsPageComponent.md new file mode 100644 index 000000000..1a37038f9 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/release-control/ReleaseControlSettingsPageComponent.md @@ -0,0 +1,47 @@ +# ReleaseControlSettingsPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Settings` +- Source: `features/settings/release-control/release-control-settings-page.component.ts` +- Selector: `app-release-control-settings-page` + +## What Is It? +Release Control Settings Page appears to be a dedicated feature surface in the Settings / Release Control area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/settings/release-control` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/security-data/SecurityDataSettingsPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/security-data/SecurityDataSettingsPageComponent.md new file mode 100644 index 000000000..0402144d2 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/security-data/SecurityDataSettingsPageComponent.md @@ -0,0 +1,49 @@ +# SecurityDataSettingsPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Settings` +- Source: `features/settings/security-data/security-data-settings-page.component.ts` +- Selector: `app-security-data-settings-page` + +## What Is It? +Security Data Settings Page appears to be a dedicated feature surface in the Settings / Security Data area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/security-data` +- `/settings/security-data` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts` +- `src/Web/StellaOps.Web/src/app/routes/administration.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/trust/TrustSettingsPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/trust/TrustSettingsPageComponent.md new file mode 100644 index 000000000..2f8ebad82 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/settings/trust/TrustSettingsPageComponent.md @@ -0,0 +1,53 @@ +# TrustSettingsPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Settings` +- Source: `features/settings/trust/trust-settings-page.component.ts` +- Selector: `app-trust-settings-page` + +## What Is It? +Trust Settings Page appears to be a dedicated feature surface in the Settings / Trust area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/trust` +- `/administration/trust/:page` +- `/ops/platform-setup/trust-signing` +- `/settings/trust` +- `/settings/trust/:page` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts` +- `src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts` +- `src/Web/StellaOps.Web/src/app/routes/administration.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/signals/SignalsRuntimeDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/signals/SignalsRuntimeDashboardComponent.md new file mode 100644 index 000000000..918fec990 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/signals/SignalsRuntimeDashboardComponent.md @@ -0,0 +1,47 @@ +# SignalsRuntimeDashboardComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Signals` +- Source: `features/signals/signals-runtime-dashboard.component.ts` +- Selector: `app-signals-runtime-dashboard` + +## What Is It? +Signals Runtime Dashboard appears to be a landing or overview surface in the Signals area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/operations/signals` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/signals/signals.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/EnvironmentPosturePageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/EnvironmentPosturePageComponent.md new file mode 100644 index 000000000..f217c9859 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/EnvironmentPosturePageComponent.md @@ -0,0 +1,48 @@ +# EnvironmentPosturePageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Topology` +- Source: `features/topology/environment-posture-page.component.ts` +- Selector: `app-environment-posture-page` + +## What Is It? +Environment Posture Page appears to be a dedicated feature surface in the Topology area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/**/release-health` +- `/mission-control/release-health` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/mission-control.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyAgentGroupDetailPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyAgentGroupDetailPageComponent.md new file mode 100644 index 000000000..df162f888 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyAgentGroupDetailPageComponent.md @@ -0,0 +1,48 @@ +# TopologyAgentGroupDetailPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Topology` +- Source: `features/topology/topology-agent-group-detail-page.component.ts` +- Selector: `app-topology-agent-group-detail-page` + +## What Is It? +Topology Agent Group Detail Page appears to be a detail panel or supporting drill-down surface in the Topology area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/agents/agents/:agentGroupId` +- `/setup/topology/agents/:agentGroupId` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/topology.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyConnectivityPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyConnectivityPageComponent.md new file mode 100644 index 000000000..593b27468 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyConnectivityPageComponent.md @@ -0,0 +1,48 @@ +# TopologyConnectivityPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Topology` +- Source: `features/topology/topology-connectivity-page.component.ts` +- Selector: `app-topology-connectivity-page` + +## What Is It? +Topology Connectivity Page appears to be a dedicated feature surface in the Topology area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/agents/connectivity` +- `/setup/topology/connectivity` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/topology.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyEnvironmentDetailPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyEnvironmentDetailPageComponent.md new file mode 100644 index 000000000..bf4b4e026 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyEnvironmentDetailPageComponent.md @@ -0,0 +1,52 @@ +# TopologyEnvironmentDetailPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Topology` +- Source: `features/topology/topology-environment-detail-page.component.ts` +- Selector: `app-topology-environment-detail-page` + +## What Is It? +Topology Environment Detail Page appears to be a detail panel or supporting drill-down surface in the Topology area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/agents/environments/:environmentId` +- `/ops/agents/environments/:environmentId/posture` +- `/releases/environments/:environmentId` +- `/setup/topology/environments/:environmentId` +- `/setup/topology/environments/:environmentId/posture` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/releases.routes.ts` +- `src/Web/StellaOps.Web/src/app/routes/topology.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyHostDetailPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyHostDetailPageComponent.md new file mode 100644 index 000000000..544d7f89b --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyHostDetailPageComponent.md @@ -0,0 +1,48 @@ +# TopologyHostDetailPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Topology` +- Source: `features/topology/topology-host-detail-page.component.ts` +- Selector: `app-topology-host-detail-page` + +## What Is It? +Topology Host Detail Page appears to be a detail panel or supporting drill-down surface in the Topology area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/agents/hosts/:hostId` +- `/setup/topology/hosts/:hostId` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/topology.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyInventoryPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyInventoryPageComponent.md new file mode 100644 index 000000000..30cd1db78 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyInventoryPageComponent.md @@ -0,0 +1,50 @@ +# TopologyInventoryPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Topology` +- Source: `features/topology/topology-inventory-page.component.ts` +- Selector: `app-topology-inventory-page` + +## What Is It? +Topology Inventory Page appears to be a dedicated feature surface in the Topology area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/agents/gate-profiles` +- `/ops/agents/workflows` +- `/setup/topology/gate-profiles` +- `/setup/topology/workflows` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/topology.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyRuntimeDriftPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyRuntimeDriftPageComponent.md new file mode 100644 index 000000000..8482456f6 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyRuntimeDriftPageComponent.md @@ -0,0 +1,48 @@ +# TopologyRuntimeDriftPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Topology` +- Source: `features/topology/topology-runtime-drift-page.component.ts` +- Selector: `app-topology-runtime-drift-page` + +## What Is It? +Topology Runtime Drift Page appears to be a dedicated feature surface in the Topology area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/agents/runtime-drift` +- `/setup/topology/runtime-drift` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/topology.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyTargetDetailPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyTargetDetailPageComponent.md new file mode 100644 index 000000000..906b649e4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/topology/TopologyTargetDetailPageComponent.md @@ -0,0 +1,48 @@ +# TopologyTargetDetailPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Topology` +- Source: `features/topology/topology-target-detail-page.component.ts` +- Selector: `app-topology-target-detail-page` + +## What Is It? +Topology Target Detail Page appears to be a detail panel or supporting drill-down surface in the Topology area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/ops/agents/targets/:targetId` +- `/setup/topology/targets/:targetId` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/topology.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/triage/TriageWorkspaceComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/triage/TriageWorkspaceComponent.md new file mode 100644 index 000000000..3682cac47 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/triage/TriageWorkspaceComponent.md @@ -0,0 +1,49 @@ +# TriageWorkspaceComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `merge` +- Preservation value: `medium` +- Feature branch: `Triage Workbench` +- Source: `features/triage/triage-workspace.component.ts` +- Selector: `app-triage-workspace` + +## What Is It? +Triage Workspace appears to be a dedicated feature surface in the Triage area. + +## Why It Likely Fell Out Of The Product +Several triage surfaces read as design experiments that were never folded cleanly into the main artifact workspace. + +## What Is Worth Preserving +Keep any explainability, quiet-lane, or audit-bundle interactions that meaningfully shorten operator triage loops. + +## Likely Successor Or Merge Target +/triage/artifacts or /evidence + +## Static Evidence +### Routed paths +- `/administration/policy/exceptions/:id` +- `/security/artifacts/:artifactId` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/administration.routes.ts` +- `src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/platform/architecture-overview.md](../../../../../../platform/architecture-overview.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/trivy-db-settings/TrivyDbSettingsPageComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/trivy-db-settings/TrivyDbSettingsPageComponent.md new file mode 100644 index 000000000..748c3e1a4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/trivy-db-settings/TrivyDbSettingsPageComponent.md @@ -0,0 +1,47 @@ +# TrivyDbSettingsPageComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Trivy Db Settings` +- Source: `features/trivy-db-settings/trivy-db-settings-page.component.ts` +- Selector: `app-trivy-db-settings-page` + +## What Is It? +Trivy Db Settings Page appears to be a dedicated feature surface in the Trivy Db Settings area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/security-data/trivy` + +### Route files +- `src/Web/StellaOps.Web/src/app/routes/administration.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/AirgapAuditComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/AirgapAuditComponent.md new file mode 100644 index 000000000..f66c575f6 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/AirgapAuditComponent.md @@ -0,0 +1,48 @@ +# AirgapAuditComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Trust Admin` +- Source: `features/trust-admin/airgap-audit.component.ts` +- Selector: `app-airgap-audit` + +## What Is It? +Airgap Audit appears to be a audit and evidence surface in the Trust Admin area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/trust-signing/airgap` +- `/setup/trust-signing/airgap` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/trust-admin/trust-admin.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/CertificateInventoryComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/CertificateInventoryComponent.md new file mode 100644 index 000000000..96c893941 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/CertificateInventoryComponent.md @@ -0,0 +1,48 @@ +# CertificateInventoryComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Trust Admin` +- Source: `features/trust-admin/certificate-inventory.component.ts` +- Selector: `app-certificate-inventory` + +## What Is It? +Certificate Inventory appears to be a dedicated feature surface in the Trust Admin area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/trust-signing/certificates` +- `/setup/trust-signing/certificates` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/trust-admin/trust-admin.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/IncidentAuditComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/IncidentAuditComponent.md new file mode 100644 index 000000000..a9884f923 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/IncidentAuditComponent.md @@ -0,0 +1,48 @@ +# IncidentAuditComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Trust Admin` +- Source: `features/trust-admin/incident-audit.component.ts` +- Selector: `app-incident-audit` + +## What Is It? +Incident Audit appears to be a audit and evidence surface in the Trust Admin area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/trust-signing/incidents` +- `/setup/trust-signing/incidents` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/trust-admin/trust-admin.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/IssuerTrustListComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/IssuerTrustListComponent.md new file mode 100644 index 000000000..0aeb36ee0 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/IssuerTrustListComponent.md @@ -0,0 +1,48 @@ +# IssuerTrustListComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Trust Admin` +- Source: `features/trust-admin/issuer-trust-list.component.ts` +- Selector: `app-issuer-trust-list` + +## What Is It? +Issuer Trust List appears to be a dedicated feature surface in the Trust Admin area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/trust-signing/issuers` +- `/setup/trust-signing/issuers` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/trust-admin/trust-admin.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/TrustAnalyticsComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/TrustAnalyticsComponent.md new file mode 100644 index 000000000..4e3e012e1 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/TrustAnalyticsComponent.md @@ -0,0 +1,48 @@ +# TrustAnalyticsComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Trust Admin` +- Source: `features/trust-admin/trust-analytics.component.ts` +- Selector: `app-trust-analytics` + +## What Is It? +Trust Analytics appears to be a dedicated feature surface in the Trust Admin area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/trust-signing/analytics` +- `/setup/trust-signing/analytics` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/trust-admin/trust-admin.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/TrustAuditLogComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/TrustAuditLogComponent.md new file mode 100644 index 000000000..1960fb040 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/trust-admin/TrustAuditLogComponent.md @@ -0,0 +1,48 @@ +# TrustAuditLogComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Trust Admin` +- Source: `features/trust-admin/trust-audit-log.component.ts` +- Selector: `app-trust-audit-log` + +## What Is It? +Trust Audit Log appears to be a audit and evidence surface in the Trust Admin area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/administration/trust-signing/audit` +- `/setup/trust-signing/audit` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/trust-admin/trust-admin.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/DeterminizationReviewComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/DeterminizationReviewComponent.md new file mode 100644 index 000000000..f3c98e747 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/DeterminizationReviewComponent.md @@ -0,0 +1,47 @@ +# DeterminizationReviewComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Unknowns Tracking` +- Source: `features/unknowns-tracking/determinization-review.component.ts` +- Selector: `app-determinization-review` + +## What Is It? +Determinization Review appears to be a approval and review surface in the Unknowns Tracking area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/security/unknowns/:unknownId/determinization` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/unknowns-tracking/unknowns.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/GreyQueueDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/GreyQueueDashboardComponent.md new file mode 100644 index 000000000..fd3316cd2 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/GreyQueueDashboardComponent.md @@ -0,0 +1,47 @@ +# GreyQueueDashboardComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Unknowns Tracking` +- Source: `features/unknowns-tracking/grey-queue-dashboard.component.ts` +- Selector: `app-grey-queue-dashboard` + +## What Is It? +Grey Queue Dashboard appears to be a landing or overview surface in the Unknowns Tracking area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/security/unknowns/queue/grey` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/unknowns-tracking/unknowns.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/UnknownDetailComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/UnknownDetailComponent.md new file mode 100644 index 000000000..5f2f363aa --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/UnknownDetailComponent.md @@ -0,0 +1,47 @@ +# UnknownDetailComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Unknowns Tracking` +- Source: `features/unknowns-tracking/unknown-detail.component.ts` +- Selector: `app-unknown-detail` + +## What Is It? +Unknown Detail appears to be a detail panel or supporting drill-down surface in the Unknowns Tracking area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/security/unknowns/:unknownId` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/unknowns-tracking/unknowns.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/UnknownsDashboardComponent.md b/docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/UnknownsDashboardComponent.md new file mode 100644 index 000000000..dbe0daf92 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/features/unknowns-tracking/UnknownsDashboardComponent.md @@ -0,0 +1,47 @@ +# UnknownsDashboardComponent + +## Status Snapshot +- Classification: `weak-route` +- Confidence: `medium` +- Recommendation: `preserve` +- Preservation value: `high` +- Feature branch: `Unknowns Tracking` +- Source: `features/unknowns-tracking/unknowns-dashboard.component.ts` +- Selector: `app-unknowns-dashboard` + +## What Is It? +Unknowns Dashboard appears to be a landing or overview surface in the Unknowns Tracking area. + +## Why It Likely Fell Out Of The Product +The component is still routed, but the current scan did not find an obvious menu or absolute page-action path to it. + +## What Is Worth Preserving +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Successor Or Merge Target +Needs branch-level review against current IA + +## Static Evidence +### Routed paths +- `/security/unknowns` + +### Route files +- `src/Web/StellaOps.Web/src/app/features/unknowns-tracking/unknowns.routes.ts` + +### Menu surfaces +- none + +### Absolute page-action surfaces +- none + +### Runtime references outside routes/tests +- none + +## Related Docs +- [docs/modules/ui/README.md](../../../../../README.md) +- [docs/modules/ui/architecture.md](../../../../../architecture.md) + +## Next-Pass Questions +- Confirm whether the route is reachable only through relative child-tab navigation. +- Check the corresponding product/docs promise before treating the page as dropped. +- Verify whether the route should be linked from the current shell or intentionally remain deep-linked only. diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/graph/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/graph/README.md new file mode 100644 index 000000000..08b896a65 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/graph/README.md @@ -0,0 +1,18 @@ +# Graph + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 1 +- Default recommendation: `preserve` +- Preservation value: `high` + +Graph components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [GraphExplorerComponent](../features/graph/GraphExplorerComponent.md) - `preserve`, features/graph/graph-explorer.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/integration-hub/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/integration-hub/README.md new file mode 100644 index 000000000..cafdb4e66 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/integration-hub/README.md @@ -0,0 +1,18 @@ +# Integration Hub + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 1 +- Default recommendation: `preserve` +- Preservation value: `high` + +Integration Hub components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [IntegrationActivityComponent](../features/integration-hub/IntegrationActivityComponent.md) - `preserve`, features/integration-hub/integration-activity.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/issuer-trust/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/issuer-trust/README.md new file mode 100644 index 000000000..b3031dcf4 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/issuer-trust/README.md @@ -0,0 +1,20 @@ +# Issuer Trust + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 3 +- Default recommendation: `preserve` +- Preservation value: `high` + +Issuer Trust components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [IssuerDetailComponent](../features/issuer-trust/components/IssuerDetailComponent.md) - `preserve`, features/issuer-trust/components/issuer-detail.component.ts +- [IssuerEditorComponent](../features/issuer-trust/components/IssuerEditorComponent.md) - `preserve`, features/issuer-trust/components/issuer-editor.component.ts +- [IssuerListComponent](../features/issuer-trust/components/IssuerListComponent.md) - `preserve`, features/issuer-trust/components/issuer-list.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/jobengine/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/jobengine/README.md new file mode 100644 index 000000000..242026852 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/jobengine/README.md @@ -0,0 +1,21 @@ +# Jobengine + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 4 +- Default recommendation: `preserve` +- Preservation value: `high` + +Jobengine components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [JobEngineDashboardComponent](../features/jobengine/JobEngineDashboardComponent.md) - `preserve`, features/jobengine/jobengine-dashboard.component.ts +- [JobEngineJobDetailComponent](../features/jobengine/JobEngineJobDetailComponent.md) - `preserve`, features/jobengine/jobengine-job-detail.component.ts +- [JobEngineJobsComponent](../features/jobengine/JobEngineJobsComponent.md) - `preserve`, features/jobengine/jobengine-jobs.component.ts +- [JobEngineQuotasComponent](../features/jobengine/JobEngineQuotasComponent.md) - `preserve`, features/jobengine/jobengine-quotas.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/mission-control/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/mission-control/README.md new file mode 100644 index 000000000..d7779d235 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/mission-control/README.md @@ -0,0 +1,19 @@ +# Mission Control + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 2 +- Default recommendation: `preserve` +- Preservation value: `high` + +Mission Control components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [MissionActivityPageComponent](../features/mission-control/MissionActivityPageComponent.md) - `preserve`, features/mission-control/mission-activity-page.component.ts +- [MissionAlertsPageComponent](../features/mission-control/MissionAlertsPageComponent.md) - `preserve`, features/mission-control/mission-alerts-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/notify/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/notify/README.md new file mode 100644 index 000000000..9cd1c8758 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/notify/README.md @@ -0,0 +1,18 @@ +# Notify + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 1 +- Default recommendation: `preserve` +- Preservation value: `high` + +Notify components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [NotifyPanelComponent](../features/notify/NotifyPanelComponent.md) - `preserve`, features/notify/notify-panel.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/offline-kit/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/offline-kit/README.md new file mode 100644 index 000000000..8b29fc282 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/offline-kit/README.md @@ -0,0 +1,21 @@ +# Offline Kit + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 4 +- Default recommendation: `preserve` +- Preservation value: `high` + +Offline Kit components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [BundleManagementComponent](../features/offline-kit/components/BundleManagementComponent.md) - `preserve`, features/offline-kit/components/bundle-management.component.ts +- [JwksManagementComponent](../features/offline-kit/components/JwksManagementComponent.md) - `preserve`, features/offline-kit/components/jwks-management.component.ts +- [OfflineDashboardComponent](../features/offline-kit/components/OfflineDashboardComponent.md) - `preserve`, features/offline-kit/components/offline-dashboard.component.ts +- [VerificationCenterComponent](../features/offline-kit/components/VerificationCenterComponent.md) - `preserve`, features/offline-kit/components/verification-center.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/pack-registry/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/pack-registry/README.md new file mode 100644 index 000000000..4658b7dcf --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/pack-registry/README.md @@ -0,0 +1,18 @@ +# Pack Registry + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 1 +- Default recommendation: `preserve` +- Preservation value: `high` + +Pack Registry components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [PackRegistryBrowserComponent](../features/pack-registry/PackRegistryBrowserComponent.md) - `preserve`, features/pack-registry/pack-registry-browser.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/platform-health/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/platform-health/README.md new file mode 100644 index 000000000..e2d1f5e8d --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/platform-health/README.md @@ -0,0 +1,20 @@ +# Platform Health + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 3 +- Default recommendation: `preserve` +- Preservation value: `high` + +Platform Health components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [IncidentTimelineComponent](../features/platform-health/IncidentTimelineComponent.md) - `preserve`, features/platform-health/incident-timeline.component.ts +- [PlatformHealthDashboardComponent](../features/platform-health/PlatformHealthDashboardComponent.md) - `preserve`, features/platform-health/platform-health-dashboard.component.ts +- [ServiceDetailComponent](../features/platform-health/ServiceDetailComponent.md) - `preserve`, features/platform-health/service-detail.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/platform-ops/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/platform-ops/README.md new file mode 100644 index 000000000..5a00ed0c7 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/platform-ops/README.md @@ -0,0 +1,25 @@ +# Platform Ops Legacy + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 8 +- Default recommendation: `merge` +- Preservation value: `medium` + +Older operations console pages from before the current `/ops` shell consolidation. + +## Why This Branch Matters +Keep distinctive observability widgets, platform state views, and telemetry interactions that are still missing from the current ops pages. + +## Likely Destination +/ops and /ops/platform-setup + +## Components +- [DataQualitySlosPageComponent](../features/platform-ops/data-integrity/DataQualitySlosPageComponent.md) - `merge`, features/platform-ops/data-integrity/data-quality-slos-page.component.ts +- [DlqReplaysPageComponent](../features/platform-ops/data-integrity/DlqReplaysPageComponent.md) - `merge`, features/platform-ops/data-integrity/dlq-replays-page.component.ts +- [FeedsFreshnessPageComponent](../features/platform-ops/data-integrity/FeedsFreshnessPageComponent.md) - `merge`, features/platform-ops/data-integrity/feeds-freshness-page.component.ts +- [IntegrationConnectivityPageComponent](../features/platform-ops/data-integrity/IntegrationConnectivityPageComponent.md) - `merge`, features/platform-ops/data-integrity/integration-connectivity-page.component.ts +- [DataIntegrityJobRunDetailPageComponent](../features/platform-ops/data-integrity/DataIntegrityJobRunDetailPageComponent.md) - `merge`, features/platform-ops/data-integrity/job-run-detail-page.component.ts +- [NightlyOpsReportPageComponent](../features/platform-ops/data-integrity/NightlyOpsReportPageComponent.md) - `merge`, features/platform-ops/data-integrity/nightly-ops-report-page.component.ts +- [ReachabilityIngestHealthPageComponent](../features/platform-ops/data-integrity/ReachabilityIngestHealthPageComponent.md) - `merge`, features/platform-ops/data-integrity/reachability-ingest-health-page.component.ts +- [ScanPipelineHealthPageComponent](../features/platform-ops/data-integrity/ScanPipelineHealthPageComponent.md) - `merge`, features/platform-ops/data-integrity/scan-pipeline-health-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/platform/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/platform/README.md new file mode 100644 index 000000000..60a436de3 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/platform/README.md @@ -0,0 +1,24 @@ +# Platform + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 7 +- Default recommendation: `preserve` +- Preservation value: `high` + +Platform components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [PlatformSetupDefaultsGuardrailsPageComponent](../features/platform/setup/PlatformSetupDefaultsGuardrailsPageComponent.md) - `preserve`, features/platform/setup/platform-setup-defaults-guardrails-page.component.ts +- [PlatformSetupFeedPolicyPageComponent](../features/platform/setup/PlatformSetupFeedPolicyPageComponent.md) - `preserve`, features/platform/setup/platform-setup-feed-policy-page.component.ts +- [PlatformSetupGateProfilesPageComponent](../features/platform/setup/PlatformSetupGateProfilesPageComponent.md) - `preserve`, features/platform/setup/platform-setup-gate-profiles-page.component.ts +- [PlatformSetupPromotionPathsPageComponent](../features/platform/setup/PlatformSetupPromotionPathsPageComponent.md) - `preserve`, features/platform/setup/platform-setup-promotion-paths-page.component.ts +- [PlatformSetupRegionsEnvironmentsPageComponent](../features/platform/setup/PlatformSetupRegionsEnvironmentsPageComponent.md) - `preserve`, features/platform/setup/platform-setup-regions-environments-page.component.ts +- [PlatformSetupReleaseTemplatesPageComponent](../features/platform/setup/PlatformSetupReleaseTemplatesPageComponent.md) - `preserve`, features/platform/setup/platform-setup-release-templates-page.component.ts +- [PlatformSetupWorkflowsGatesPageComponent](../features/platform/setup/PlatformSetupWorkflowsGatesPageComponent.md) - `preserve`, features/platform/setup/platform-setup-workflows-gates-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/policy-governance/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/policy-governance/README.md new file mode 100644 index 000000000..b0dae81d1 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/policy-governance/README.md @@ -0,0 +1,31 @@ +# Policy Governance + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 14 +- Default recommendation: `preserve` +- Preservation value: `high` + +Current policy governance admin subtree that looks real but still needs surface verification. + +## Why This Branch Matters +Preserve the full governance branch; the main question is wiring quality, not product value. + +## Likely Destination +/admin/policy/governance + +## Components +- [ConflictResolutionWizardComponent](../features/policy-governance/ConflictResolutionWizardComponent.md) - `preserve`, features/policy-governance/conflict-resolution-wizard.component.ts +- [GovernanceAuditComponent](../features/policy-governance/GovernanceAuditComponent.md) - `preserve`, features/policy-governance/governance-audit.component.ts +- [ImpactPreviewComponent](../features/policy-governance/ImpactPreviewComponent.md) - `preserve`, features/policy-governance/impact-preview.component.ts +- [PolicyConflictDashboardComponent](../features/policy-governance/PolicyConflictDashboardComponent.md) - `preserve`, features/policy-governance/policy-conflict-dashboard.component.ts +- [PolicyValidatorComponent](../features/policy-governance/PolicyValidatorComponent.md) - `preserve`, features/policy-governance/policy-validator.component.ts +- [RiskBudgetConfigComponent](../features/policy-governance/RiskBudgetConfigComponent.md) - `preserve`, features/policy-governance/risk-budget-config.component.ts +- [RiskProfileEditorComponent](../features/policy-governance/RiskProfileEditorComponent.md) - `preserve`, features/policy-governance/risk-profile-editor.component.ts +- [RiskProfileListComponent](../features/policy-governance/RiskProfileListComponent.md) - `preserve`, features/policy-governance/risk-profile-list.component.ts +- [SchemaDocsComponent](../features/policy-governance/SchemaDocsComponent.md) - `preserve`, features/policy-governance/schema-docs.component.ts +- [SchemaPlaygroundComponent](../features/policy-governance/SchemaPlaygroundComponent.md) - `preserve`, features/policy-governance/schema-playground.component.ts +- [SealedModeControlComponent](../features/policy-governance/SealedModeControlComponent.md) - `preserve`, features/policy-governance/sealed-mode-control.component.ts +- [SealedModeOverridesComponent](../features/policy-governance/SealedModeOverridesComponent.md) - `preserve`, features/policy-governance/sealed-mode-overrides.component.ts +- [StalenessConfigComponent](../features/policy-governance/StalenessConfigComponent.md) - `preserve`, features/policy-governance/staleness-config.component.ts +- [TrustWeightingComponent](../features/policy-governance/TrustWeightingComponent.md) - `preserve`, features/policy-governance/trust-weighting.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/policy-studio/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/policy-studio/README.md new file mode 100644 index 000000000..26afc0a1a --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/policy-studio/README.md @@ -0,0 +1,18 @@ +# Policy Studio Legacy + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 1 +- Default recommendation: `merge` +- Preservation value: `high` + +Legacy all-in-one policy authoring, approvals, dashboard, and simulation surfaces from the older IA. + +## Why This Branch Matters +Keep the authoring concepts, simulation affordances, approvals flow, and any editor UX that is stronger than the current split surfaces. + +## Likely Destination +/admin/policy/governance and /admin/policy/simulation + +## Components +- [PolicyWorkspaceComponent](../features/policy-studio/workspace/PolicyWorkspaceComponent.md) - `merge`, features/policy-studio/workspace/policy-workspace.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/quota-dashboard/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/quota-dashboard/README.md new file mode 100644 index 000000000..0c0ece9ab --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/quota-dashboard/README.md @@ -0,0 +1,23 @@ +# Quota Dashboard + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 6 +- Default recommendation: `preserve` +- Preservation value: `high` + +Quota Dashboard components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [QuotaAlertConfigComponent](../features/quota-dashboard/QuotaAlertConfigComponent.md) - `preserve`, features/quota-dashboard/quota-alert-config.component.ts +- [QuotaForecastComponent](../features/quota-dashboard/QuotaForecastComponent.md) - `preserve`, features/quota-dashboard/quota-forecast.component.ts +- [QuotaReportExportComponent](../features/quota-dashboard/QuotaReportExportComponent.md) - `preserve`, features/quota-dashboard/quota-report-export.component.ts +- [TenantQuotaDetailComponent](../features/quota-dashboard/TenantQuotaDetailComponent.md) - `preserve`, features/quota-dashboard/tenant-quota-detail.component.ts +- [TenantQuotaTableComponent](../features/quota-dashboard/TenantQuotaTableComponent.md) - `preserve`, features/quota-dashboard/tenant-quota-table.component.ts +- [ThrottleContextComponent](../features/quota-dashboard/ThrottleContextComponent.md) - `preserve`, features/quota-dashboard/throttle-context.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/release-orchestrator/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/release-orchestrator/README.md new file mode 100644 index 000000000..d53c607d6 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/release-orchestrator/README.md @@ -0,0 +1,18 @@ +# Release Orchestrator + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 1 +- Default recommendation: `preserve` +- Preservation value: `high` + +Release Orchestrator components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [WorkflowEditorComponent](../features/release-orchestrator/workflows/workflow-editor/WorkflowEditorComponent.md) - `preserve`, features/release-orchestrator/workflows/workflow-editor/workflow-editor.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/releases/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/releases/README.md new file mode 100644 index 000000000..c83e30b43 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/releases/README.md @@ -0,0 +1,19 @@ +# Releases + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 2 +- Default recommendation: `preserve` +- Preservation value: `high` + +Releases components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [HotfixDetailPageComponent](../features/releases/HotfixDetailPageComponent.md) - `preserve`, features/releases/hotfix-detail-page.component.ts +- [ReleaseOpsOverviewPageComponent](../features/releases/ReleaseOpsOverviewPageComponent.md) - `preserve`, features/releases/release-ops-overview-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/sbom-sources/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/sbom-sources/README.md new file mode 100644 index 000000000..fdcee5614 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/sbom-sources/README.md @@ -0,0 +1,18 @@ +# Sbom Sources + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 1 +- Default recommendation: `preserve` +- Preservation value: `high` + +Sbom Sources components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [SourceWizardComponent](../features/sbom-sources/components/source-wizard/SourceWizardComponent.md) - `preserve`, features/sbom-sources/components/source-wizard/source-wizard.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/scanner-ops/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/scanner-ops/README.md new file mode 100644 index 000000000..ee7f60893 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/scanner-ops/README.md @@ -0,0 +1,23 @@ +# Scanner Ops + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 6 +- Default recommendation: `preserve` +- Preservation value: `high` + +Scanner Ops components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [AnalyzerHealthComponent](../features/scanner-ops/components/AnalyzerHealthComponent.md) - `preserve`, features/scanner-ops/components/analyzer-health.component.ts +- [BaselineListComponent](../features/scanner-ops/components/BaselineListComponent.md) - `preserve`, features/scanner-ops/components/baseline-list.component.ts +- [DeterminismSettingsComponent](../features/scanner-ops/components/DeterminismSettingsComponent.md) - `preserve`, features/scanner-ops/components/determinism-settings.component.ts +- [OfflineKitListComponent](../features/scanner-ops/components/OfflineKitListComponent.md) - `preserve`, features/scanner-ops/components/offline-kit-list.component.ts +- [PerformanceBaselineComponent](../features/scanner-ops/components/PerformanceBaselineComponent.md) - `preserve`, features/scanner-ops/components/performance-baseline.component.ts +- [ScannerOpsComponent](../features/scanner-ops/ScannerOpsComponent.md) - `preserve`, features/scanner-ops/scanner-ops.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/scheduler-ops/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/scheduler-ops/README.md new file mode 100644 index 000000000..a84377024 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/scheduler-ops/README.md @@ -0,0 +1,19 @@ +# Scheduler Ops + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 2 +- Default recommendation: `preserve` +- Preservation value: `high` + +Scheduler Ops components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [ScheduleManagementComponent](../features/scheduler-ops/ScheduleManagementComponent.md) - `preserve`, features/scheduler-ops/schedule-management.component.ts +- [WorkerFleetComponent](../features/scheduler-ops/WorkerFleetComponent.md) - `preserve`, features/scheduler-ops/worker-fleet.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/security-risk/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/security-risk/README.md new file mode 100644 index 000000000..590271992 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/security-risk/README.md @@ -0,0 +1,22 @@ +# Security Risk + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 5 +- Default recommendation: `preserve` +- Preservation value: `high` + +Security Risk components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [AdvisorySourcesComponent](../features/security-risk/AdvisorySourcesComponent.md) - `preserve`, features/security-risk/advisory-sources.component.ts +- [FindingDetailPageComponent](../features/security-risk/FindingDetailPageComponent.md) - `preserve`, features/security-risk/finding-detail-page.component.ts +- [RemediationFixDetailComponent](../features/security-risk/remediation/RemediationFixDetailComponent.md) - `preserve`, features/security-risk/remediation/remediation-fix-detail.component.ts +- [SymbolMarketplaceCatalogComponent](../features/security-risk/symbol-sources/SymbolMarketplaceCatalogComponent.md) - `preserve`, features/security-risk/symbol-sources/symbol-marketplace-catalog.component.ts +- [SymbolSourceDetailComponent](../features/security-risk/symbol-sources/SymbolSourceDetailComponent.md) - `preserve`, features/security-risk/symbol-sources/symbol-source-detail.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/security/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/security/README.md new file mode 100644 index 000000000..0e9dd43ac --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/security/README.md @@ -0,0 +1,18 @@ +# Security + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 1 +- Default recommendation: `preserve` +- Preservation value: `high` + +Security components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [SbomGraphPageComponent](../features/security/SbomGraphPageComponent.md) - `preserve`, features/security/sbom-graph-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/settings/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/settings/README.md new file mode 100644 index 000000000..c16cd16fb --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/settings/README.md @@ -0,0 +1,25 @@ +# Settings + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 8 +- Default recommendation: `preserve` +- Preservation value: `high` + +Settings components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [AiPreferencesWorkbenchComponent](../features/settings/AiPreferencesWorkbenchComponent.md) - `preserve`, features/settings/ai-preferences-workbench.component.ts +- [IntegrationDetailPageComponent](../features/settings/integrations/IntegrationDetailPageComponent.md) - `preserve`, features/settings/integrations/integration-detail-page.component.ts +- [LanguageSettingsPageComponent](../features/settings/language/LanguageSettingsPageComponent.md) - `preserve`, features/settings/language/language-settings-page.component.ts +- [NotificationsSettingsPageComponent](../features/settings/notifications/NotificationsSettingsPageComponent.md) - `preserve`, features/settings/notifications/notifications-settings-page.component.ts +- [PolicyGovernanceSettingsPageComponent](../features/settings/policy/PolicyGovernanceSettingsPageComponent.md) - `preserve`, features/settings/policy/policy-governance-settings-page.component.ts +- [ReleaseControlSettingsPageComponent](../features/settings/release-control/ReleaseControlSettingsPageComponent.md) - `preserve`, features/settings/release-control/release-control-settings-page.component.ts +- [SecurityDataSettingsPageComponent](../features/settings/security-data/SecurityDataSettingsPageComponent.md) - `preserve`, features/settings/security-data/security-data-settings-page.component.ts +- [TrustSettingsPageComponent](../features/settings/trust/TrustSettingsPageComponent.md) - `preserve`, features/settings/trust/trust-settings-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/signals/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/signals/README.md new file mode 100644 index 000000000..ba97e4ebd --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/signals/README.md @@ -0,0 +1,18 @@ +# Signals + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 1 +- Default recommendation: `preserve` +- Preservation value: `high` + +Signals components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [SignalsRuntimeDashboardComponent](../features/signals/SignalsRuntimeDashboardComponent.md) - `preserve`, features/signals/signals-runtime-dashboard.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/topology/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/topology/README.md new file mode 100644 index 000000000..b8ef82c01 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/topology/README.md @@ -0,0 +1,25 @@ +# Topology + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 8 +- Default recommendation: `preserve` +- Preservation value: `high` + +Topology components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [EnvironmentPosturePageComponent](../features/topology/EnvironmentPosturePageComponent.md) - `preserve`, features/topology/environment-posture-page.component.ts +- [TopologyAgentGroupDetailPageComponent](../features/topology/TopologyAgentGroupDetailPageComponent.md) - `preserve`, features/topology/topology-agent-group-detail-page.component.ts +- [TopologyConnectivityPageComponent](../features/topology/TopologyConnectivityPageComponent.md) - `preserve`, features/topology/topology-connectivity-page.component.ts +- [TopologyEnvironmentDetailPageComponent](../features/topology/TopologyEnvironmentDetailPageComponent.md) - `preserve`, features/topology/topology-environment-detail-page.component.ts +- [TopologyHostDetailPageComponent](../features/topology/TopologyHostDetailPageComponent.md) - `preserve`, features/topology/topology-host-detail-page.component.ts +- [TopologyInventoryPageComponent](../features/topology/TopologyInventoryPageComponent.md) - `preserve`, features/topology/topology-inventory-page.component.ts +- [TopologyRuntimeDriftPageComponent](../features/topology/TopologyRuntimeDriftPageComponent.md) - `preserve`, features/topology/topology-runtime-drift-page.component.ts +- [TopologyTargetDetailPageComponent](../features/topology/TopologyTargetDetailPageComponent.md) - `preserve`, features/topology/topology-target-detail-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/triage/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/triage/README.md new file mode 100644 index 000000000..18fd6402c --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/triage/README.md @@ -0,0 +1,18 @@ +# Triage Workbench + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 1 +- Default recommendation: `merge` +- Preservation value: `medium` + +Triage experiments, workbenches, and audit-bundle side surfaces around artifact analysis. + +## Why This Branch Matters +Keep any explainability, quiet-lane, or audit-bundle interactions that meaningfully shorten operator triage loops. + +## Likely Destination +/triage/artifacts or /evidence + +## Components +- [TriageWorkspaceComponent](../features/triage/TriageWorkspaceComponent.md) - `merge`, features/triage/triage-workspace.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/trivy-db-settings/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/trivy-db-settings/README.md new file mode 100644 index 000000000..9f2ca81fb --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/trivy-db-settings/README.md @@ -0,0 +1,18 @@ +# Trivy Db Settings + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 1 +- Default recommendation: `preserve` +- Preservation value: `high` + +Trivy Db Settings components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [TrivyDbSettingsPageComponent](../features/trivy-db-settings/TrivyDbSettingsPageComponent.md) - `preserve`, features/trivy-db-settings/trivy-db-settings-page.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/trust-admin/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/trust-admin/README.md new file mode 100644 index 000000000..34331f9e2 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/trust-admin/README.md @@ -0,0 +1,23 @@ +# Trust Admin + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 6 +- Default recommendation: `preserve` +- Preservation value: `high` + +Trust Admin components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [AirgapAuditComponent](../features/trust-admin/AirgapAuditComponent.md) - `preserve`, features/trust-admin/airgap-audit.component.ts +- [CertificateInventoryComponent](../features/trust-admin/CertificateInventoryComponent.md) - `preserve`, features/trust-admin/certificate-inventory.component.ts +- [IncidentAuditComponent](../features/trust-admin/IncidentAuditComponent.md) - `preserve`, features/trust-admin/incident-audit.component.ts +- [IssuerTrustListComponent](../features/trust-admin/IssuerTrustListComponent.md) - `preserve`, features/trust-admin/issuer-trust-list.component.ts +- [TrustAnalyticsComponent](../features/trust-admin/TrustAnalyticsComponent.md) - `preserve`, features/trust-admin/trust-analytics.component.ts +- [TrustAuditLogComponent](../features/trust-admin/TrustAuditLogComponent.md) - `preserve`, features/trust-admin/trust-audit-log.component.ts diff --git a/docs/modules/ui/component-preservation-map/components/weak-route/unknowns-tracking/README.md b/docs/modules/ui/component-preservation-map/components/weak-route/unknowns-tracking/README.md new file mode 100644 index 000000000..694744524 --- /dev/null +++ b/docs/modules/ui/component-preservation-map/components/weak-route/unknowns-tracking/README.md @@ -0,0 +1,21 @@ +# Unknowns Tracking + +## Branch Summary +- Classification bucket: `weak-route` +- Components in branch: 4 +- Default recommendation: `preserve` +- Preservation value: `high` + +Unknowns Tracking components grouped from the static unused-component scan. + +## Why This Branch Matters +Preserve the underlying workflow only if current product docs still claim the capability or if the component contains unique UI concepts. + +## Likely Destination +Needs branch-level review against current IA + +## Components +- [DeterminizationReviewComponent](../features/unknowns-tracking/DeterminizationReviewComponent.md) - `preserve`, features/unknowns-tracking/determinization-review.component.ts +- [GreyQueueDashboardComponent](../features/unknowns-tracking/GreyQueueDashboardComponent.md) - `preserve`, features/unknowns-tracking/grey-queue-dashboard.component.ts +- [UnknownDetailComponent](../features/unknowns-tracking/UnknownDetailComponent.md) - `preserve`, features/unknowns-tracking/unknown-detail.component.ts +- [UnknownsDashboardComponent](../features/unknowns-tracking/UnknownsDashboardComponent.md) - `preserve`, features/unknowns-tracking/unknowns-dashboard.component.ts diff --git a/docs/modules/ui/component-preservation-map/inventory.json b/docs/modules/ui/component-preservation-map/inventory.json new file mode 100644 index 000000000..97ec433ec --- /dev/null +++ b/docs/modules/ui/component-preservation-map/inventory.json @@ -0,0 +1,7303 @@ +{ + "generatedOn": "2026-03-07", + "counts": { + "dead": 167, + "weakRoute": 136, + "total": 303 + }, + "candidates": [ + { + "className": "AdminNotificationsComponent", + "selector": "app-admin-notifications", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "admin-notifications", + "branchKey": "admin-notifications", + "branchTitle": "Admin Notifications", + "source": "features/admin-notifications/admin-notifications.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AutofixWorkbenchComponent", + "selector": "stellaops-autofix-workbench", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "advisory-ai", + "branchKey": "advisory-ai", + "branchTitle": "Advisory Ai", + "source": "features/advisory-ai/autofix-workbench.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ChipShowcaseComponent", + "selector": "stellaops-ai-chip-showcase", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "advisory-ai", + "branchKey": "advisory-ai", + "branchTitle": "Advisory Ai", + "source": "features/advisory-ai/chip-showcase.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EvidenceDrilldownComponent", + "selector": "stellaops-evidence-drilldown", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "advisory-ai", + "branchKey": "advisory-ai", + "branchTitle": "Advisory Ai", + "source": "features/advisory-ai/evidence-drilldown.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ExplainButtonComponent", + "selector": "stellaops-explain-button", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "advisory-ai", + "branchKey": "advisory-ai", + "branchTitle": "Advisory Ai", + "source": "features/advisory-ai/explain-button.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ExplanationPanelComponent", + "selector": "stellaops-explanation-panel", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "advisory-ai", + "branchKey": "advisory-ai", + "branchTitle": "Advisory Ai", + "source": "features/advisory-ai/explanation-panel.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AocVerificationWorkbenchComponent", + "selector": "stellaops-aoc-verification-workbench", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "aoc", + "branchKey": "aoc", + "branchTitle": "Aoc", + "source": "features/aoc/aoc-verification-workbench.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ApprovalDetailPageComponent", + "selector": "app-approval-detail-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "approvals", + "branchKey": "approvals", + "branchTitle": "Approvals", + "source": "features/approvals/approval-detail-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ApprovalsInboxPageComponent", + "selector": "app-approvals-inbox-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "approvals", + "branchKey": "approvals", + "branchTitle": "Approvals", + "source": "features/approvals/approvals-inbox-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "RequestExceptionModalComponent", + "selector": "app-request-exception-modal", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "approvals", + "branchKey": "approvals", + "branchTitle": "Approvals", + "source": "features/approvals/modals/request-exception-modal.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "BinaryIndexOpsComponent", + "selector": "app-binary-index-ops", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "binary-index", + "branchKey": "binary-index", + "branchTitle": "Binary Index", + "source": "features/binary-index/binary-index-ops.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ChangeTraceViewerComponent", + "selector": "stella-change-trace-viewer", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "change-trace", + "branchKey": "change-trace", + "branchTitle": "Change Trace", + "source": "features/change-trace/change-trace-viewer.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "DegradedModeBannerComponent", + "selector": "stella-degraded-mode-banner", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "compare", + "branchKey": "compare", + "branchTitle": "Compare", + "source": "features/compare/components/degraded-mode-banner/degraded-mode-banner.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "GraphMiniMapComponent", + "selector": "stella-graph-mini-map", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "compare", + "branchKey": "compare", + "branchTitle": "Compare", + "source": "features/compare/components/graph-mini-map/graph-mini-map.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ActionWaterfallComponent", + "selector": "app-action-waterfall", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "components", + "branchKey": "components", + "branchTitle": "Components", + "source": "shared/components/action-waterfall/action-waterfall.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EvidenceChecklistComponent", + "selector": "stella-evidence-checklist", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "components", + "branchKey": "components", + "branchTitle": "Components", + "source": "shared/components/evidence-checklist/evidence-checklist.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "FixVerdictBadgeComponent", + "selector": "app-fix-verdict-badge", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "components", + "branchKey": "components", + "branchTitle": "Components", + "source": "shared/components/fix-verdict-badge.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "GraphSplitViewComponent", + "selector": "stellaops-graph-split-view", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "components", + "branchKey": "components", + "branchTitle": "Components", + "source": "shared/components/graph-diff/graph-split-view.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "OfflineBannerComponent", + "selector": "app-offline-banner", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "components", + "branchKey": "components", + "branchTitle": "Components", + "source": "shared/components/offline-banner.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PlaceholderPageComponent", + "selector": "app-placeholder-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "components", + "branchKey": "components", + "branchTitle": "Components", + "source": "shared/components/placeholder-page/placeholder-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SourceStatusBadgeComponent", + "selector": "app-source-status-badge", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "components", + "branchKey": "components", + "branchTitle": "Components", + "source": "shared/components/source-status-badge.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SourceTypeIconComponent", + "selector": "app-source-type-icon", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "components", + "branchKey": "components", + "branchTitle": "Components", + "source": "shared/components/source-type-icon.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ThemeToggleComponent", + "selector": "app-theme-toggle", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "components", + "branchKey": "components", + "branchTitle": "Components", + "source": "shared/components/theme-toggle/theme-toggle.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ViewModeToggleComponent", + "selector": "stella-view-mode-toggle", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "components", + "branchKey": "components", + "branchTitle": "Components", + "source": "shared/components/view-mode-toggle/view-mode-toggle.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "CvssReceiptComponent", + "selector": "app-cvss-receipt", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "cvss", + "branchKey": "cvss", + "branchTitle": "Cvss", + "source": "features/cvss/cvss-receipt.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AiRiskDriversComponent", + "selector": "stella-ai-risk-drivers", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "dashboard", + "branchKey": "dashboard", + "branchTitle": "Dashboard", + "source": "features/dashboard/ai-risk-drivers.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SourcesDashboardComponent", + "selector": "app-sources-dashboard", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "dashboard", + "branchKey": "dashboard", + "branchTitle": "Dashboard", + "source": "features/dashboard/sources-dashboard.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "DeploymentDetailPageComponent", + "selector": "app-deployment-detail-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "deployments", + "branchKey": "deployments", + "branchTitle": "Deployments", + "source": "features/deployments/deployment-detail-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "RegistryChecksPanelComponent", + "selector": "st-registry-checks-panel", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "doctor", + "branchKey": "doctor", + "branchTitle": "Doctor", + "source": "features/doctor/components/registry/registry-checks-panel.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EnvironmentsListPageComponent", + "selector": "app-environments-list-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "environments", + "branchKey": "environments", + "branchTitle": "Environments", + "source": "features/environments/environments-list-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EvidenceCenterPageComponent", + "selector": "app-evidence-center-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "evidence", + "branchKey": "evidence", + "branchTitle": "Evidence", + "source": "features/evidence/evidence-center-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EvidencePacketPageComponent", + "selector": "app-evidence-packet-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "evidence", + "branchKey": "evidence", + "branchTitle": "Evidence", + "source": "features/evidence/evidence-packet-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AuditBundleCreateModalComponent", + "selector": "app-audit-bundle-create-modal", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "evidence", + "branchKey": "evidence", + "branchTitle": "Evidence", + "source": "features/evidence/modals/audit-bundle-create-modal.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EvidenceThreadListComponent", + "selector": "stella-evidence-thread-list", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "evidence-thread", + "branchKey": "evidence-thread", + "branchTitle": "Evidence Thread", + "source": "features/evidence-thread/components/evidence-thread-list/evidence-thread-list.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EvidenceThreadViewComponent", + "selector": "stella-evidence-thread-view", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "evidence-thread", + "branchKey": "evidence-thread", + "branchTitle": "Evidence Thread", + "source": "features/evidence-thread/components/evidence-thread-view/evidence-thread-view.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "FindingDetailLayoutComponent", + "selector": "stella-finding-detail-layout", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "findings", + "branchKey": "findings", + "branchTitle": "Findings", + "source": "features/findings/detail/finding-detail-layout.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "GraphFiltersComponent", + "selector": "app-graph-filters", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "graph", + "branchKey": "graph", + "branchTitle": "Graph", + "source": "features/graph/graph-filters.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "GraphHotkeyHelpComponent", + "selector": "app-graph-hotkey-help", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "graph", + "branchKey": "graph", + "branchTitle": "Graph", + "source": "features/graph/graph-hotkey-help.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "GraphSidePanelsComponent", + "selector": "app-graph-side-panels", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "graph", + "branchKey": "graph", + "branchTitle": "Graph", + "source": "features/graph/graph-side-panels.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "HomeDashboardComponent", + "selector": "app-home-dashboard", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "home", + "branchKey": "home", + "branchTitle": "Home", + "source": "features/home/home-dashboard.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AuditPackExportComponent", + "selector": "app-audit-pack-export", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "lineage", + "branchKey": "lineage", + "branchTitle": "Lineage", + "source": "features/lineage/components/audit-pack-export/audit-pack-export.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ExplainerTimelineComponent", + "selector": "app-explainer-timeline", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "lineage", + "branchKey": "lineage", + "branchTitle": "Lineage", + "source": "features/lineage/components/explainer-timeline/explainer-timeline.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "LineageComparePanelComponent", + "selector": "app-lineage-compare-panel", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "lineage", + "branchKey": "lineage", + "branchTitle": "Lineage", + "source": "features/lineage/components/lineage-compare-panel/lineage-compare-panel.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "LineageDetailPanelComponent", + "selector": "app-lineage-detail-panel", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "lineage", + "branchKey": "lineage", + "branchTitle": "Lineage", + "source": "features/lineage/components/lineage-detail-panel/lineage-detail-panel.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "LineageEdgeComponent", + "selector": "[app-lineage-edge]", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "lineage", + "branchKey": "lineage", + "branchTitle": "Lineage", + "source": "features/lineage/components/lineage-edge/lineage-edge.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "LineageExportButtonsComponent", + "selector": "app-lineage-export-buttons", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "lineage", + "branchKey": "lineage", + "branchTitle": "Lineage", + "source": "features/lineage/components/lineage-export-buttons/lineage-export-buttons.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "LineageExportDialogComponent", + "selector": "app-lineage-export-dialog", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "lineage", + "branchKey": "lineage", + "branchTitle": "Lineage", + "source": "features/lineage/components/lineage-export-dialog/lineage-export-dialog.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "LineageMobileCompareComponent", + "selector": "app-lineage-mobile-compare", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "lineage", + "branchKey": "lineage", + "branchTitle": "Lineage", + "source": "features/lineage/components/lineage-mobile-compare/lineage-mobile-compare.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "LineageNodeComponent", + "selector": "[app-lineage-node]", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "lineage", + "branchKey": "lineage", + "branchTitle": "Lineage", + "source": "features/lineage/components/lineage-node/lineage-node.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "LineageProvenanceCompareComponent", + "selector": "app-lineage-provenance-compare", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "lineage", + "branchKey": "lineage", + "branchTitle": "Lineage", + "source": "features/lineage/components/lineage-provenance-compare/lineage-provenance-compare.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "LineageSbomDiffComponent", + "selector": "app-lineage-sbom-diff", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "lineage", + "branchKey": "lineage", + "branchTitle": "Lineage", + "source": "features/lineage/components/lineage-sbom-diff/lineage-sbom-diff.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "LineageVexDiffComponent", + "selector": "app-lineage-vex-diff", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "lineage", + "branchKey": "lineage", + "branchTitle": "Lineage", + "source": "features/lineage/components/lineage-vex-diff/lineage-vex-diff.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "NodeDiffTableComponent", + "selector": "app-node-diff-table", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "lineage", + "branchKey": "lineage", + "branchTitle": "Lineage", + "source": "features/lineage/components/node-diff-table/diff-table.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PinnedPanelComponent", + "selector": "app-pinned-panel", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "lineage", + "branchKey": "lineage", + "branchTitle": "Lineage", + "source": "features/lineage/components/pinned-explanation/pinned-panel/pinned-panel.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SearchQualityDashboardComponent", + "selector": "app-search-quality-dashboard", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "operations", + "branchKey": "operations", + "branchTitle": "Operations", + "source": "features/operations/search-quality/search-quality-dashboard.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "GateExplainDrawerComponent", + "selector": "app-gate-explain-drawer", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "overlays", + "branchKey": "overlays", + "branchTitle": "Overlays", + "source": "shared/overlays/gate-explain-drawer/gate-explain-drawer.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "WitnessDrawerComponent", + "selector": "app-witness-drawer", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "overlays", + "branchKey": "overlays", + "branchTitle": "Overlays", + "source": "shared/overlays/witness-drawer/witness-drawer.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PlatformHomePageComponent", + "selector": "app-platform-home-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "platform", + "branchKey": "platform", + "branchTitle": "Platform", + "source": "features/platform/platform-home-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "BundleExplorerComponent", + "selector": "app-bundle-explorer", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "medium", + "family": "platform-ops", + "branchKey": "platform-ops", + "branchTitle": "Platform Ops Legacy", + "source": "features/platform-ops/federation-telemetry/bundle-explorer.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/ops and /ops/platform-setup" + }, + { + "className": "ConsentManagementComponent", + "selector": "app-consent-management", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "medium", + "family": "platform-ops", + "branchKey": "platform-ops", + "branchTitle": "Platform Ops Legacy", + "source": "features/platform-ops/federation-telemetry/consent-management.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/ops and /ops/platform-setup" + }, + { + "className": "FederationOverviewComponent", + "selector": "app-federation-overview", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "medium", + "family": "platform-ops", + "branchKey": "platform-ops", + "branchTitle": "Platform Ops Legacy", + "source": "features/platform-ops/federation-telemetry/federation-overview.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/ops and /ops/platform-setup" + }, + { + "className": "IntelligenceViewerComponent", + "selector": "app-intelligence-viewer", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "medium", + "family": "platform-ops", + "branchKey": "platform-ops", + "branchTitle": "Platform Ops Legacy", + "source": "features/platform-ops/federation-telemetry/intelligence-viewer.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/ops and /ops/platform-setup" + }, + { + "className": "PrivacyBudgetMonitorComponent", + "selector": "app-privacy-budget-monitor", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "medium", + "family": "platform-ops", + "branchKey": "platform-ops", + "branchTitle": "Platform Ops Legacy", + "source": "features/platform-ops/federation-telemetry/privacy-budget-monitor.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/ops and /ops/platform-setup" + }, + { + "className": "AttestationBadgeComponent", + "selector": "app-attestation-badge", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "policy", + "branchKey": "policy", + "branchTitle": "Policy", + "source": "features/policy/components/attestation-badge/attestation-badge.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EvidenceChainViewerComponent", + "selector": "app-evidence-chain-viewer", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "policy", + "branchKey": "policy", + "branchTitle": "Policy", + "source": "features/policy/components/evidence-chain-viewer/evidence-chain-viewer.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "VerdictProofPanelComponent", + "selector": "app-verdict-proof-panel", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "policy", + "branchKey": "policy", + "branchTitle": "Policy", + "source": "features/policy/components/verdict-proof-panel/verdict-proof-panel.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ConflictVisualizerComponent", + "selector": "stellaops-conflict-visualizer", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "high", + "family": "policy-studio", + "branchKey": "policy-studio", + "branchTitle": "Policy Studio Legacy", + "source": "features/policy-studio/ai/conflict-visualizer.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/contracts/policy-studio.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/admin/policy/governance and /admin/policy/simulation" + }, + { + "className": "LiveRulePreviewComponent", + "selector": "stellaops-live-rule-preview", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "high", + "family": "policy-studio", + "branchKey": "policy-studio", + "branchTitle": "Policy Studio Legacy", + "source": "features/policy-studio/ai/live-rule-preview.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/contracts/policy-studio.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/admin/policy/governance and /admin/policy/simulation" + }, + { + "className": "TestCasePanelComponent", + "selector": "stellaops-test-case-panel", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "high", + "family": "policy-studio", + "branchKey": "policy-studio", + "branchTitle": "Policy Studio Legacy", + "source": "features/policy-studio/ai/test-case-panel.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/contracts/policy-studio.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/admin/policy/governance and /admin/policy/simulation" + }, + { + "className": "VersionHistoryComponent", + "selector": "stellaops-version-history", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "high", + "family": "policy-studio", + "branchKey": "policy-studio", + "branchTitle": "Policy Studio Legacy", + "source": "features/policy-studio/ai/version-history.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/contracts/policy-studio.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/admin/policy/governance and /admin/policy/simulation" + }, + { + "className": "PolicyApprovalsComponent", + "selector": "app-policy-approvals", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "high", + "family": "policy-studio", + "branchKey": "policy-studio", + "branchTitle": "Policy Studio Legacy", + "source": "features/policy-studio/approvals/policy-approvals.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/contracts/policy-studio.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/admin/policy/governance and /admin/policy/simulation" + }, + { + "className": "PolicyDashboardComponent", + "selector": "app-policy-dashboard", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "high", + "family": "policy-studio", + "branchKey": "policy-studio", + "branchTitle": "Policy Studio Legacy", + "source": "features/policy-studio/dashboard/policy-dashboard.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/contracts/policy-studio.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/admin/policy/governance and /admin/policy/simulation" + }, + { + "className": "PolicyEditorComponent", + "selector": "app-policy-editor", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "high", + "family": "policy-studio", + "branchKey": "policy-studio", + "branchTitle": "Policy Studio Legacy", + "source": "features/policy-studio/editor/policy-editor.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/contracts/policy-studio.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/admin/policy/governance and /admin/policy/simulation" + }, + { + "className": "PolicyExplainComponent", + "selector": "app-policy-explain", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "high", + "family": "policy-studio", + "branchKey": "policy-studio", + "branchTitle": "Policy Studio Legacy", + "source": "features/policy-studio/explain/policy-explain.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/contracts/policy-studio.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/admin/policy/governance and /admin/policy/simulation" + }, + { + "className": "PolicyNlInputComponent", + "selector": "stellaops-policy-nl-input", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "high", + "family": "policy-studio", + "branchKey": "policy-studio", + "branchTitle": "Policy Studio Legacy", + "source": "features/policy-studio/nl-input/policy-nl-input.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/contracts/policy-studio.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/admin/policy/governance and /admin/policy/simulation" + }, + { + "className": "PolicyRuleBuilderComponent", + "selector": "app-policy-rule-builder", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "high", + "family": "policy-studio", + "branchKey": "policy-studio", + "branchTitle": "Policy Studio Legacy", + "source": "features/policy-studio/rule-builder/policy-rule-builder.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/contracts/policy-studio.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/admin/policy/governance and /admin/policy/simulation" + }, + { + "className": "PolicyYamlEditorComponent", + "selector": "app-policy-yaml-editor", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "high", + "family": "policy-studio", + "branchKey": "policy-studio", + "branchTitle": "Policy Studio Legacy", + "source": "features/policy-studio/yaml/policy-yaml-editor.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/contracts/policy-studio.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/admin/policy/governance and /admin/policy/simulation" + }, + { + "className": "CreatePromotionComponent", + "selector": "app-create-promotion", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "promotions", + "branchKey": "promotions", + "branchTitle": "Promotions", + "source": "features/promotions/create-promotion.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PromotionDetailComponent", + "selector": "app-promotion-detail", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "promotions", + "branchKey": "promotions", + "branchTitle": "Promotions", + "source": "features/promotions/promotion-detail.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ProofDetailPanelComponent", + "selector": "stella-proof-detail-panel", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "proof-chain", + "branchKey": "proof-chain", + "branchTitle": "Proof Chain", + "source": "features/proof-chain/components/proof-detail-panel.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ProofStudioContainerComponent", + "selector": "app-proof-studio-container", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "proof-studio", + "branchKey": "proof-studio", + "branchTitle": "Proof Studio", + "source": "features/proof-studio/components/proof-studio-container/proof-studio-container.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "WebFeatureRecheckWorkbenchComponent", + "selector": "app-web-feature-recheck-workbench", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "qa", + "branchKey": "qa", + "branchTitle": "Qa", + "source": "features/qa/web-feature-recheck-workbench.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PoEDrawerComponent", + "selector": "app-poe-drawer", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "high", + "family": "reachability", + "branchKey": "reachability", + "branchTitle": "Reachability Witnessing", + "source": "features/reachability/poe-drawer.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "/security/reachability or /evidence" + }, + { + "className": "WitnessPageComponent", + "selector": "app-witness-page", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "high", + "family": "reachability", + "branchKey": "reachability", + "branchTitle": "Reachability Witnessing", + "source": "features/reachability/witness-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "/security/reachability or /evidence" + }, + { + "className": "PlanAuditComponent", + "selector": "app-plan-audit", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "registry-admin", + "branchKey": "registry-admin", + "branchTitle": "Registry Admin", + "source": "features/registry-admin/components/plan-audit.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PlanEditorComponent", + "selector": "app-plan-editor", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "registry-admin", + "branchKey": "registry-admin", + "branchTitle": "Registry Admin", + "source": "features/registry-admin/components/plan-editor.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PlanListComponent", + "selector": "app-plan-list", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "registry-admin", + "branchKey": "registry-admin", + "branchTitle": "Registry Admin", + "source": "features/registry-admin/components/plan-list.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "RegistryAdminComponent", + "selector": "app-registry-admin", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "registry-admin", + "branchKey": "registry-admin", + "branchTitle": "Registry Admin", + "source": "features/registry-admin/registry-admin.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ReleaseControlGovernanceHubComponent", + "selector": "app-release-control-governance-hub", + "classification": "dead", + "confidence": "high", + "recommendation": "archive", + "preservationValue": "low", + "family": "release-control", + "branchKey": "release-control", + "branchTitle": "Release Control Legacy", + "source": "features/release-control/governance/release-control-governance-hub.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/S00_route_deprecation_map.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/releases, /ops/platform-setup, and /setup/topology" + }, + { + "className": "ReleaseControlGovernanceSectionComponent", + "selector": "app-release-control-governance-section", + "classification": "dead", + "confidence": "high", + "recommendation": "archive", + "preservationValue": "low", + "family": "release-control", + "branchKey": "release-control", + "branchTitle": "Release Control Legacy", + "source": "features/release-control/governance/release-control-governance-section.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/S00_route_deprecation_map.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/releases, /ops/platform-setup, and /setup/topology" + }, + { + "className": "RegionDetailComponent", + "selector": "app-region-detail", + "classification": "dead", + "confidence": "high", + "recommendation": "archive", + "preservationValue": "low", + "family": "release-control", + "branchKey": "release-control", + "branchTitle": "Release Control Legacy", + "source": "features/release-control/regions/region-detail.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/S00_route_deprecation_map.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/releases, /ops/platform-setup, and /setup/topology" + }, + { + "className": "RegionsOverviewComponent", + "selector": "app-regions-overview", + "classification": "dead", + "confidence": "high", + "recommendation": "archive", + "preservationValue": "low", + "family": "release-control", + "branchKey": "release-control", + "branchTitle": "Release Control Legacy", + "source": "features/release-control/regions/regions-overview.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/S00_route_deprecation_map.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/releases, /ops/platform-setup, and /setup/topology" + }, + { + "className": "ReleaseControlSetupHomeComponent", + "selector": "app-release-control-setup-home", + "classification": "dead", + "confidence": "high", + "recommendation": "archive", + "preservationValue": "low", + "family": "release-control", + "branchKey": "release-control", + "branchTitle": "Release Control Legacy", + "source": "features/release-control/setup/release-control-setup-home.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/S00_route_deprecation_map.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/releases, /ops/platform-setup, and /setup/topology" + }, + { + "className": "SetupBundleTemplatesComponent", + "selector": "app-setup-bundle-templates", + "classification": "dead", + "confidence": "high", + "recommendation": "archive", + "preservationValue": "low", + "family": "release-control", + "branchKey": "release-control", + "branchTitle": "Release Control Legacy", + "source": "features/release-control/setup/setup-bundle-templates.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/S00_route_deprecation_map.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/releases, /ops/platform-setup, and /setup/topology" + }, + { + "className": "SetupEnvironmentsPathsComponent", + "selector": "app-setup-environments-paths", + "classification": "dead", + "confidence": "high", + "recommendation": "archive", + "preservationValue": "low", + "family": "release-control", + "branchKey": "release-control", + "branchTitle": "Release Control Legacy", + "source": "features/release-control/setup/setup-environments-paths.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/S00_route_deprecation_map.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/releases, /ops/platform-setup, and /setup/topology" + }, + { + "className": "SetupTargetsAgentsComponent", + "selector": "app-setup-targets-agents", + "classification": "dead", + "confidence": "high", + "recommendation": "archive", + "preservationValue": "low", + "family": "release-control", + "branchKey": "release-control", + "branchTitle": "Release Control Legacy", + "source": "features/release-control/setup/setup-targets-agents.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/S00_route_deprecation_map.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/releases, /ops/platform-setup, and /setup/topology" + }, + { + "className": "SetupWorkflowsComponent", + "selector": "app-setup-workflows", + "classification": "dead", + "confidence": "high", + "recommendation": "archive", + "preservationValue": "low", + "family": "release-control", + "branchKey": "release-control", + "branchTitle": "Release Control Legacy", + "source": "features/release-control/setup/setup-workflows.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/S00_route_deprecation_map.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/releases, /ops/platform-setup, and /setup/topology" + }, + { + "className": "PromotionRequestComponent", + "selector": "app-promotion-request", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "release-orchestrator", + "branchKey": "release-orchestrator", + "branchTitle": "Release Orchestrator", + "source": "features/release-orchestrator/approvals/promotion-request/promotion-request.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ReleaseDashboardComponent", + "selector": "app-release-dashboard", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "release-orchestrator", + "branchKey": "release-orchestrator", + "branchTitle": "Release Orchestrator", + "source": "features/release-orchestrator/dashboard/dashboard.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "DeploymentListComponent", + "selector": "app-deployment-list", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "release-orchestrator", + "branchKey": "release-orchestrator", + "branchTitle": "Release Orchestrator", + "source": "features/release-orchestrator/deployments/deployment-list/deployment-list.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "DeploymentMonitorComponent", + "selector": "app-deployment-monitor", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "release-orchestrator", + "branchKey": "release-orchestrator", + "branchTitle": "Release Orchestrator", + "source": "features/release-orchestrator/deployments/deployment-monitor/deployment-monitor.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EnvironmentSettingsComponent", + "selector": "app-environment-settings", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "release-orchestrator", + "branchKey": "release-orchestrator", + "branchTitle": "Release Orchestrator", + "source": "features/release-orchestrator/environments/components/environment-settings/environment-settings.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "FreezeWindowEditorComponent", + "selector": "app-freeze-window-editor", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "release-orchestrator", + "branchKey": "release-orchestrator", + "branchTitle": "Release Orchestrator", + "source": "features/release-orchestrator/environments/components/freeze-window-editor/freeze-window-editor.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TargetListComponent", + "selector": "app-target-list", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "release-orchestrator", + "branchKey": "release-orchestrator", + "branchTitle": "Release Orchestrator", + "source": "features/release-orchestrator/environments/components/target-list/target-list.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EnvironmentListComponent", + "selector": "app-environment-list", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "release-orchestrator", + "branchKey": "release-orchestrator", + "branchTitle": "Release Orchestrator", + "source": "features/release-orchestrator/environments/environment-list/environment-list.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EvidenceDetailComponent", + "selector": "so-evidence-detail", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "release-orchestrator", + "branchKey": "release-orchestrator", + "branchTitle": "Release Orchestrator", + "source": "features/release-orchestrator/evidence/evidence-detail/evidence-detail.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EvidenceListComponent", + "selector": "so-evidence-list", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "release-orchestrator", + "branchKey": "release-orchestrator", + "branchTitle": "Release Orchestrator", + "source": "features/release-orchestrator/evidence/evidence-list/evidence-list.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PipelineRunDetailComponent", + "selector": "app-pipeline-run-detail", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "release-orchestrator", + "branchKey": "release-orchestrator", + "branchTitle": "Release Orchestrator", + "source": "features/release-orchestrator/runs/pipeline-run-detail.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PipelineRunsListComponent", + "selector": "app-pipeline-runs-list", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "release-orchestrator", + "branchKey": "release-orchestrator", + "branchTitle": "Release Orchestrator", + "source": "features/release-orchestrator/runs/pipeline-runs-list.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ReleaseDetailPageComponent", + "selector": "app-release-detail-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "releases", + "branchKey": "releases", + "branchTitle": "Releases", + "source": "features/releases/release-detail-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ReleasesListPageComponent", + "selector": "app-releases-list-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "releases", + "branchKey": "releases", + "branchTitle": "Releases", + "source": "features/releases/releases-list-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ScoreComparisonComponent", + "selector": "stella-score-comparison", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "scores", + "branchKey": "scores", + "branchTitle": "Scores", + "source": "features/scores/score-comparison.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ArtifactDetailPageComponent", + "selector": "app-artifact-detail-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "security", + "branchKey": "security", + "branchTitle": "Security", + "source": "features/security/artifact-detail-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ArtifactsPageComponent", + "selector": "app-artifacts-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "security", + "branchKey": "security", + "branchTitle": "Security", + "source": "features/security/artifacts-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ExceptionDetailPageComponent", + "selector": "app-exception-detail-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "security", + "branchKey": "security", + "branchTitle": "Security", + "source": "features/security/exception-detail-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "LineagePageComponent", + "selector": "app-lineage-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "security", + "branchKey": "security", + "branchTitle": "Security", + "source": "features/security/lineage-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PatchMapPageComponent", + "selector": "app-patch-map-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "security", + "branchKey": "security", + "branchTitle": "Security", + "source": "features/security/patch-map-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ReachabilityPageComponent", + "selector": "app-reachability-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "security", + "branchKey": "security", + "branchTitle": "Security", + "source": "features/security/reachability-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "RiskPageComponent", + "selector": "app-risk-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "security", + "branchKey": "security", + "branchTitle": "Security", + "source": "features/security/risk-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SecurityComponentDetailPageComponent", + "selector": "app-security-component-detail-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "security", + "branchKey": "security", + "branchTitle": "Security", + "source": "features/security/security-component-detail-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SecurityEnvironmentRiskDetailPageComponent", + "selector": "app-security-environment-risk-detail-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "security", + "branchKey": "security", + "branchTitle": "Security", + "source": "features/security/security-environment-risk-detail-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SecurityOverviewPageComponent", + "selector": "app-security-overview-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "security", + "branchKey": "security", + "branchTitle": "Security", + "source": "features/security/security-overview-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "UnknownsPageComponent", + "selector": "app-unknowns-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "security", + "branchKey": "security", + "branchTitle": "Security", + "source": "features/security/unknowns-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "VexHubPageComponent", + "selector": "app-vex-hub-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "security", + "branchKey": "security", + "branchTitle": "Security", + "source": "features/security/vex-hub-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "VulnerabilitiesPageComponent", + "selector": "app-vulnerabilities-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "security", + "branchKey": "security", + "branchTitle": "Security", + "source": "features/security/vulnerabilities-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "RemediationFixesBadgeComponent", + "selector": "app-remediation-fixes-badge", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "security-risk", + "branchKey": "security-risk", + "branchTitle": "Security Risk", + "source": "features/security-risk/remediation/remediation-fixes-badge.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "DeterminizationConfigPaneComponent", + "selector": "stella-determinization-config-pane", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "settings", + "branchKey": "settings", + "branchTitle": "Settings", + "source": "features/settings/determinization-config-pane.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "RemediationPrSettingsComponent", + "selector": "stella-remediation-pr-settings", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "settings", + "branchKey": "settings", + "branchTitle": "Settings", + "source": "features/settings/remediation-pr-settings.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SloAlertListComponent", + "selector": "app-slo-alert-list", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "slo-monitoring", + "branchKey": "slo-monitoring", + "branchTitle": "Slo Monitoring", + "source": "features/slo-monitoring/slo-alert-list.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SloDashboardComponent", + "selector": "app-slo-dashboard", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "slo-monitoring", + "branchKey": "slo-monitoring", + "branchTitle": "Slo Monitoring", + "source": "features/slo-monitoring/slo-dashboard.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SloDefinitionsComponent", + "selector": "app-slo-definitions", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "slo-monitoring", + "branchKey": "slo-monitoring", + "branchTitle": "Slo Monitoring", + "source": "features/slo-monitoring/slo-definitions.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SloDetailComponent", + "selector": "app-slo-detail", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "slo-monitoring", + "branchKey": "slo-monitoring", + "branchTitle": "Slo Monitoring", + "source": "features/slo-monitoring/slo-detail.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SnapshotPanelComponent", + "selector": "app-snapshot-panel", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "snapshot", + "branchKey": "snapshot", + "branchTitle": "Snapshot", + "source": "features/snapshot/components/snapshot-panel/snapshot-panel.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TimelinePageComponent", + "selector": "app-timeline-page", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "timeline", + "branchKey": "timeline", + "branchTitle": "Timeline", + "source": "features/timeline/pages/timeline-page/timeline-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AiRecommendationWorkbenchComponent", + "selector": "stellaops-ai-recommendation-workbench", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "medium", + "family": "triage", + "branchKey": "triage", + "branchTitle": "Triage Workbench", + "source": "features/triage/ai-recommendation-workbench.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "/triage/artifacts or /evidence" + }, + { + "className": "AiCodeGuardBadgeComponent", + "selector": "app-ai-code-guard-badge", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "medium", + "family": "triage", + "branchKey": "triage", + "branchTitle": "Triage Workbench", + "source": "features/triage/components/ai-code-guard-badge/ai-code-guard-badge.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "/triage/artifacts or /evidence" + }, + { + "className": "SnapshotViewerComponent", + "selector": "stella-snapshot-viewer", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "medium", + "family": "triage", + "branchKey": "triage", + "branchTitle": "Triage Workbench", + "source": "features/triage/components/snapshot-viewer/snapshot-viewer.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "/triage/artifacts or /evidence" + }, + { + "className": "UnknownsListComponent", + "selector": "app-unknowns-list", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "medium", + "family": "triage", + "branchKey": "triage", + "branchTitle": "Triage Workbench", + "source": "features/triage/components/unknowns-list/unknowns-list.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "/triage/artifacts or /evidence" + }, + { + "className": "QuietLaneWorkbenchComponent", + "selector": "stellaops-quiet-lane-workbench", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "medium", + "family": "triage", + "branchKey": "triage", + "branchTitle": "Triage Workbench", + "source": "features/triage/quiet-lane-workbench.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "/triage/artifacts or /evidence" + }, + { + "className": "ReasonCapsuleWorkbenchComponent", + "selector": "stellaops-reason-capsule-workbench", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "medium", + "family": "triage", + "branchKey": "triage", + "branchTitle": "Triage Workbench", + "source": "features/triage/reason-capsule-workbench.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "/triage/artifacts or /evidence" + }, + { + "className": "TriageAuditBundleNewComponent", + "selector": "app-triage-audit-bundle-new", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "medium", + "family": "triage", + "branchKey": "triage", + "branchTitle": "Triage Workbench", + "source": "features/triage/triage-audit-bundle-new.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "/triage/artifacts or /evidence" + }, + { + "className": "TriageAuditBundlesComponent", + "selector": "app-triage-audit-bundles", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "medium", + "family": "triage", + "branchKey": "triage", + "branchTitle": "Triage Workbench", + "source": "features/triage/triage-audit-bundles.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "/triage/artifacts or /evidence" + }, + { + "className": "TriageInboxComponent", + "selector": "app-triage-inbox", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "triage-inbox", + "branchKey": "triage-inbox", + "branchTitle": "Triage Inbox", + "source": "features/triage-inbox/triage-inbox.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "CopyToClipboardComponent", + "selector": "app-copy-to-clipboard", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "ui", + "branchKey": "ui", + "branchTitle": "Ui", + "source": "shared/ui/copy-to-clipboard/copy-to-clipboard.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "FilterBarComponent", + "selector": "app-filter-bar", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "ui", + "branchKey": "ui", + "branchTitle": "Ui", + "source": "shared/ui/filter-bar/filter-bar.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "InlineCodeComponent", + "selector": "app-inline-code", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "ui", + "branchKey": "ui", + "branchTitle": "Ui", + "source": "shared/ui/inline-code/inline-code.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "MetricCardComponent", + "selector": "app-metric-card", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "ui", + "branchKey": "ui", + "branchTitle": "Ui", + "source": "shared/ui/metric-card/metric-card.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PageHeaderComponent", + "selector": "app-page-header", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "ui", + "branchKey": "ui", + "branchTitle": "Ui", + "source": "shared/ui/page-header/page-header.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SplitPaneComponent", + "selector": "app-split-pane", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "ui", + "branchKey": "ui", + "branchTitle": "Ui", + "source": "shared/ui/split-pane/split-pane.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TimelineListComponent", + "selector": "app-timeline-list", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "ui", + "branchKey": "ui", + "branchTitle": "Ui", + "source": "shared/ui/timeline-list/timeline-list.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "WitnessViewerComponent", + "selector": "app-witness-viewer", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "ui", + "branchKey": "ui", + "branchTitle": "Ui", + "source": "shared/ui/witness-viewer/witness-viewer.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "UnknownsBudgetWidgetComponent", + "selector": "stella-unknowns-budget-widget", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "unknowns", + "branchKey": "unknowns", + "branchTitle": "Unknowns", + "source": "features/unknowns/unknowns-budget-widget.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "VexConflictStudioComponent", + "selector": "stella-vex-conflict-studio", + "classification": "dead", + "confidence": "high", + "recommendation": "merge", + "preservationValue": "high", + "family": "vex-studio", + "branchKey": "vex-studio", + "branchTitle": "VEX Studio", + "source": "features/vex-studio/vex-conflict-studio.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "/admin/vex-hub" + }, + { + "className": "CitationLinkComponent", + "selector": "app-citation-link", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "vuln-explorer", + "branchKey": "vuln-explorer", + "branchTitle": "Vuln Explorer", + "source": "features/vuln-explorer/components/citation-link/citation-link.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "CitationListComponent", + "selector": "app-citation-list", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "vuln-explorer", + "branchKey": "vuln-explorer", + "branchTitle": "Vuln Explorer", + "source": "features/vuln-explorer/components/citation-link/citation-link.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EvidenceTreeComponent", + "selector": "app-evidence-tree", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "vuln-explorer", + "branchKey": "vuln-explorer", + "branchTitle": "Vuln Explorer", + "source": "features/vuln-explorer/components/evidence-tree/evidence-tree.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "FilterPresetPillsComponent", + "selector": "app-filter-preset-pills", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "vuln-explorer", + "branchKey": "vuln-explorer", + "branchTitle": "Vuln Explorer", + "source": "features/vuln-explorer/components/filter-preset-pills/filter-preset-pills.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TriageCardGridComponent", + "selector": "app-triage-card-grid", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "vuln-explorer", + "branchKey": "vuln-explorer", + "branchTitle": "Vuln Explorer", + "source": "features/vuln-explorer/components/triage-card/triage-card.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TriageFiltersComponent", + "selector": "app-triage-filters", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "vuln-explorer", + "branchKey": "vuln-explorer", + "branchTitle": "Vuln Explorer", + "source": "features/vuln-explorer/components/triage-filters/triage-filters.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "VerdictExplanationComponent", + "selector": "app-verdict-explanation", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "vuln-explorer", + "branchKey": "vuln-explorer", + "branchTitle": "Vuln Explorer", + "source": "features/vuln-explorer/components/verdict-explanation/verdict-explanation.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "VulnTriageDashboardComponent", + "selector": "app-vuln-triage-dashboard", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "vulnerabilities", + "branchKey": "vulnerabilities", + "branchTitle": "Vulnerabilities", + "source": "features/vulnerabilities/components/vuln-triage-dashboard/vuln-triage-dashboard.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "VulnerabilityDetailComponent", + "selector": "st-vulnerability-detail", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "vulnerabilities", + "branchKey": "vulnerabilities", + "branchTitle": "Vulnerabilities", + "source": "features/vulnerabilities/vulnerability-detail.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "WatchlistPageComponent", + "selector": "app-watchlist-page", + "classification": "dead", + "confidence": "high", + "recommendation": "wire-in", + "preservationValue": "high", + "family": "watchlist", + "branchKey": "watchlist", + "branchTitle": "Watchlist", + "source": "features/watchlist/watchlist-page.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/operations/watchlist-monitoring-runbook.md", + "docs/modules/platform/architecture-overview.md" + ], + "likelyDestination": "/mission-control or /ops" + }, + { + "className": "StepDetailPanelComponent", + "selector": "app-step-detail-panel", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "workflow-visualization", + "branchKey": "workflow-visualization", + "branchTitle": "Workflow Visualization Prototype", + "source": "features/workflow-visualization/components/step-detail-panel/step-detail-panel.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/architecture.md", + "docs/modules/platform/architecture-overview.md" + ], + "likelyDestination": "/evidence or /releases/runs" + }, + { + "className": "TimeTravelControlsComponent", + "selector": "app-time-travel-controls", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "workflow-visualization", + "branchKey": "workflow-visualization", + "branchTitle": "Workflow Visualization Prototype", + "source": "features/workflow-visualization/components/time-travel-controls/time-travel-controls.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/architecture.md", + "docs/modules/platform/architecture-overview.md" + ], + "likelyDestination": "/evidence or /releases/runs" + }, + { + "className": "WorkflowVisualizerComponent", + "selector": "app-workflow-visualizer", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "workflow-visualization", + "branchKey": "workflow-visualization", + "branchTitle": "Workflow Visualization Prototype", + "source": "features/workflow-visualization/components/workflow-visualizer/workflow-visualizer.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/architecture.md", + "docs/modules/platform/architecture-overview.md" + ], + "likelyDestination": "/evidence or /releases/runs" + }, + { + "className": "DeveloperWorkspaceComponent", + "selector": "stella-developer-workspace", + "classification": "dead", + "confidence": "high", + "recommendation": "investigate", + "preservationValue": "medium", + "family": "workspaces", + "branchKey": "workspaces", + "branchTitle": "Workspaces", + "source": "features/workspaces/developer/components/developer-workspace/developer-workspace.component.ts", + "routePaths": [], + "routeFiles": [], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AiRunViewerComponent", + "selector": "stellaops-ai-run-viewer", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "ai-runs", + "branchKey": "ai-runs", + "branchTitle": "Ai Runs", + "source": "features/ai-runs/ai-run-viewer.component.ts", + "routePaths": [ + "/ops/operations/ai-runs/:runId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/operations.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AiRunsListComponent", + "selector": "stellaops-ai-runs-list", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "ai-runs", + "branchKey": "ai-runs", + "branchTitle": "Ai Runs", + "source": "features/ai-runs/ai-runs-list.component.ts", + "routePaths": [ + "/ops/operations/ai-runs" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/operations.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AocComplianceDashboardComponent", + "selector": "app-aoc-compliance-dashboard", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "aoc-compliance", + "branchKey": "aoc-compliance", + "branchTitle": "Aoc Compliance", + "source": "features/aoc-compliance/aoc-compliance-dashboard.component.ts", + "routePaths": [ + "/ops/operations/aoc" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/aoc-compliance/aoc-compliance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ComplianceReportComponent", + "selector": "app-compliance-report", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "aoc-compliance", + "branchKey": "aoc-compliance", + "branchTitle": "Aoc Compliance", + "source": "features/aoc-compliance/compliance-report.component.ts", + "routePaths": [ + "/ops/operations/aoc/report" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/aoc-compliance/aoc-compliance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "GuardViolationsListComponent", + "selector": "app-guard-violations-list", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "aoc-compliance", + "branchKey": "aoc-compliance", + "branchTitle": "Aoc Compliance", + "source": "features/aoc-compliance/guard-violations-list.component.ts", + "routePaths": [ + "/ops/operations/aoc/violations" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/aoc-compliance/aoc-compliance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "IngestionFlowComponent", + "selector": "app-ingestion-flow", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "aoc-compliance", + "branchKey": "aoc-compliance", + "branchTitle": "Aoc Compliance", + "source": "features/aoc-compliance/ingestion-flow.component.ts", + "routePaths": [ + "/ops/operations/aoc/ingestion" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/aoc-compliance/aoc-compliance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ProvenanceValidatorComponent", + "selector": "app-provenance-validator", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "aoc-compliance", + "branchKey": "aoc-compliance", + "branchTitle": "Aoc Compliance", + "source": "features/aoc-compliance/provenance-validator.component.ts", + "routePaths": [ + "/ops/operations/aoc/provenance" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/aoc-compliance/aoc-compliance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AuditAnomaliesComponent", + "selector": "app-audit-anomalies", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "audit-log", + "branchKey": "audit-log", + "branchTitle": "Audit Log", + "source": "features/audit-log/audit-anomalies.component.ts", + "routePaths": [ + "/evidence/audit-log/anomalies" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AuditAuthorityComponent", + "selector": "app-audit-authority", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "audit-log", + "branchKey": "audit-log", + "branchTitle": "Audit Log", + "source": "features/audit-log/audit-authority.component.ts", + "routePaths": [ + "/evidence/audit-log/authority" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AuditCorrelationsComponent", + "selector": "app-audit-correlations", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "audit-log", + "branchKey": "audit-log", + "branchTitle": "Audit Log", + "source": "features/audit-log/audit-correlations.component.ts", + "routePaths": [ + "/evidence/audit-log/correlations" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AuditEventDetailComponent", + "selector": "app-audit-event-detail", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "audit-log", + "branchKey": "audit-log", + "branchTitle": "Audit Log", + "source": "features/audit-log/audit-event-detail.component.ts", + "routePaths": [ + "/evidence/audit-log/events/:eventId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AuditExportComponent", + "selector": "app-audit-export", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "audit-log", + "branchKey": "audit-log", + "branchTitle": "Audit Log", + "source": "features/audit-log/audit-export.component.ts", + "routePaths": [ + "/evidence/audit-log/export" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AuditIntegrationsComponent", + "selector": "app-audit-integrations", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "audit-log", + "branchKey": "audit-log", + "branchTitle": "Audit Log", + "source": "features/audit-log/audit-integrations.component.ts", + "routePaths": [ + "/evidence/audit-log/integrations" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AuditLogTableComponent", + "selector": "app-audit-log-table", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "audit-log", + "branchKey": "audit-log", + "branchTitle": "Audit Log", + "source": "features/audit-log/audit-log-table.component.ts", + "routePaths": [ + "/evidence/audit-log/events" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AuditPolicyComponent", + "selector": "app-audit-policy", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "audit-log", + "branchKey": "audit-log", + "branchTitle": "Audit Log", + "source": "features/audit-log/audit-policy.component.ts", + "routePaths": [ + "/evidence/audit-log/policy" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AuditTimelineSearchComponent", + "selector": "app-audit-timeline-search", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "audit-log", + "branchKey": "audit-log", + "branchTitle": "Audit Log", + "source": "features/audit-log/audit-timeline-search.component.ts", + "routePaths": [ + "/evidence/audit-log/timeline" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AuditVexComponent", + "selector": "app-audit-vex", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "audit-log", + "branchKey": "audit-log", + "branchTitle": "Audit Log", + "source": "features/audit-log/audit-vex.component.ts", + "routePaths": [ + "/evidence/audit-log/vex" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/audit-log/audit-log.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "BundleDetailComponent", + "selector": "app-bundle-detail", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "bundles", + "branchKey": "bundles", + "branchTitle": "Bundles", + "source": "features/bundles/bundle-detail.component.ts", + "routePaths": [ + "/releases/bundles/:bundleId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/bundles/bundles.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "BundleVersionDetailComponent", + "selector": "app-bundle-version-detail", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "bundles", + "branchKey": "bundles", + "branchTitle": "Bundles", + "source": "features/bundles/bundle-version-detail.component.ts", + "routePaths": [ + "/releases/bundles/:bundleId/versions/:versionId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/bundles/bundles.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ConsoleProfileComponent", + "selector": "app-console-profile", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "console", + "branchKey": "console", + "branchTitle": "Console", + "source": "features/console/console-profile.component.ts", + "routePaths": [ + "/administration/profile" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/administration.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ClientsListComponent", + "selector": "app-clients-list", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "console-admin", + "branchKey": "console-admin", + "branchTitle": "Console Admin", + "source": "features/console-admin/clients/clients-list.component.ts", + "routePaths": [ + "/console-admin/clients" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/console-admin/console-admin.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ConsoleAdminLayoutComponent", + "selector": "app-console-admin-layout", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "console-admin", + "branchKey": "console-admin", + "branchTitle": "Console Admin", + "source": "features/console-admin/console-admin-layout.component.ts", + "routePaths": [ + "/console-admin" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/console-admin/console-admin.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "RolesListComponent", + "selector": "app-roles-list", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "console-admin", + "branchKey": "console-admin", + "branchTitle": "Console Admin", + "source": "features/console-admin/roles/roles-list.component.ts", + "routePaths": [ + "/console-admin/roles" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/console-admin/console-admin.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TenantsListComponent", + "selector": "app-tenants-list", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "console-admin", + "branchKey": "console-admin", + "branchTitle": "Console Admin", + "source": "features/console-admin/tenants/tenants-list.component.ts", + "routePaths": [ + "/console-admin", + "/console-admin/tenants" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/console-admin/console-admin.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TokensListComponent", + "selector": "app-tokens-list", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "console-admin", + "branchKey": "console-admin", + "branchTitle": "Console Admin", + "source": "features/console-admin/tokens/tokens-list.component.ts", + "routePaths": [ + "/console-admin/tokens" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/console-admin/console-admin.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "UsersListComponent", + "selector": "app-users-list", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "console-admin", + "branchKey": "console-admin", + "branchTitle": "Console Admin", + "source": "features/console-admin/users/users-list.component.ts", + "routePaths": [ + "/console-admin/users" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/console-admin/console-admin.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "DeadLetterDashboardComponent", + "selector": "app-deadletter-dashboard", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "deadletter", + "branchKey": "deadletter", + "branchTitle": "Deadletter", + "source": "features/deadletter/deadletter-dashboard.component.ts", + "routePaths": [ + "/ops/operations/dead-letter" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/deadletter/deadletter.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "DeadLetterEntryDetailComponent", + "selector": "app-deadletter-entry-detail", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "deadletter", + "branchKey": "deadletter", + "branchTitle": "Deadletter", + "source": "features/deadletter/deadletter-entry-detail.component.ts", + "routePaths": [ + "/ops/operations/dead-letter/entry/:entryId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/deadletter/deadletter.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "DeadLetterQueueComponent", + "selector": "app-deadletter-queue", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "deadletter", + "branchKey": "deadletter", + "branchTitle": "Deadletter", + "source": "features/deadletter/deadletter-queue.component.ts", + "routePaths": [ + "/ops/operations/dead-letter/queue" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/deadletter/deadletter.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EvidenceBundlesComponent", + "selector": "app-evidence-bundles", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "evidence-export", + "branchKey": "evidence-export", + "branchTitle": "Evidence Export", + "source": "features/evidence-export/evidence-bundles.component.ts", + "routePaths": [ + "/evidence/exports/bundles" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/evidence-export/evidence-export.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ProvenanceVisualizationComponent", + "selector": "app-provenance-visualization", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "evidence-export", + "branchKey": "evidence-export", + "branchTitle": "Evidence Export", + "source": "features/evidence-export/provenance-visualization.component.ts", + "routePaths": [ + "/evidence/exports/provenance" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/evidence-export/evidence-export.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EvidencePackViewerComponent", + "selector": "stellaops-evidence-pack-viewer", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "evidence-pack", + "branchKey": "evidence-pack", + "branchTitle": "Evidence Pack", + "source": "features/evidence-pack/evidence-pack-viewer.component.ts", + "routePaths": [ + "/evidence/capsules/:capsuleId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/evidence.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ExceptionApprovalQueueComponent", + "selector": "app-exception-approval-queue", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "exceptions", + "branchKey": "exceptions", + "branchTitle": "Exceptions", + "source": "features/exceptions/exception-approval-queue.component.ts", + "routePaths": [ + "/security/exceptions/approvals" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "GraphExplorerComponent", + "selector": "app-graph-explorer", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "graph", + "branchKey": "graph", + "branchTitle": "Graph", + "source": "features/graph/graph-explorer.component.ts", + "routePaths": [ + "/security/sbom/graph" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "IntegrationActivityComponent", + "selector": "app-integration-activity", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "integration-hub", + "branchKey": "integration-hub", + "branchTitle": "Integration Hub", + "source": "features/integration-hub/integration-activity.component.ts", + "routePaths": [ + "/ops/integrations/activity", + "/setup/integrations/activity" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/integration-hub/integration-hub.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "IssuerDetailComponent", + "selector": "app-issuer-detail", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "issuer-trust", + "branchKey": "issuer-trust", + "branchTitle": "Issuer Trust", + "source": "features/issuer-trust/components/issuer-detail.component.ts", + "routePaths": [ + "/administration/trust/issuers/:issuerId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/issuer-trust/issuer-trust.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "IssuerEditorComponent", + "selector": "app-issuer-editor", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "issuer-trust", + "branchKey": "issuer-trust", + "branchTitle": "Issuer Trust", + "source": "features/issuer-trust/components/issuer-editor.component.ts", + "routePaths": [ + "/administration/trust/issuers/new" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/issuer-trust/issuer-trust.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "IssuerListComponent", + "selector": "app-issuer-list", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "issuer-trust", + "branchKey": "issuer-trust", + "branchTitle": "Issuer Trust", + "source": "features/issuer-trust/components/issuer-list.component.ts", + "routePaths": [ + "/administration/trust/issuers", + "/administration/trust/issuers/list" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/issuer-trust/issuer-trust.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "JobEngineDashboardComponent", + "selector": "app-jobengine-dashboard", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "jobengine", + "branchKey": "jobengine", + "branchTitle": "Jobengine", + "source": "features/jobengine/jobengine-dashboard.component.ts", + "routePaths": [ + "/ops/operations/jobengine" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/operations.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "JobEngineJobDetailComponent", + "selector": "app-jobengine-job-detail", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "jobengine", + "branchKey": "jobengine", + "branchTitle": "Jobengine", + "source": "features/jobengine/jobengine-job-detail.component.ts", + "routePaths": [ + "/ops/operations/orchestrator/jobs/:jobId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/operations.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "JobEngineJobsComponent", + "selector": "app-jobengine-jobs", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "jobengine", + "branchKey": "jobengine", + "branchTitle": "Jobengine", + "source": "features/jobengine/jobengine-jobs.component.ts", + "routePaths": [ + "/ops/operations/jobengine/jobs" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/operations.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "JobEngineQuotasComponent", + "selector": "app-jobengine-quotas", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "jobengine", + "branchKey": "jobengine", + "branchTitle": "Jobengine", + "source": "features/jobengine/jobengine-quotas.component.ts", + "routePaths": [ + "/ops/operations/jobengine/quotas" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/operations.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "MissionActivityPageComponent", + "selector": "app-mission-activity-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "mission-control", + "branchKey": "mission-control", + "branchTitle": "Mission Control", + "source": "features/mission-control/mission-activity-page.component.ts", + "routePaths": [ + "/**/activity", + "/mission-control/activity" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/mission-control.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "MissionAlertsPageComponent", + "selector": "app-mission-alerts-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "mission-control", + "branchKey": "mission-control", + "branchTitle": "Mission Control", + "source": "features/mission-control/mission-alerts-page.component.ts", + "routePaths": [ + "/**/alerts", + "/mission-control/alerts" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/mission-control.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "NotifyPanelComponent", + "selector": "app-notify-panel", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "notify", + "branchKey": "notify", + "branchTitle": "Notify", + "source": "features/notify/notify-panel.component.ts", + "routePaths": [ + "/ops/operations/notifications" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/operations.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "BundleManagementComponent", + "selector": "app-bundle-management", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "offline-kit", + "branchKey": "offline-kit", + "branchTitle": "Offline Kit", + "source": "features/offline-kit/components/bundle-management.component.ts", + "routePaths": [ + "/ops/operations/offline-kit/bundles" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/offline-kit/offline-kit.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "JwksManagementComponent", + "selector": "app-jwks-management", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "offline-kit", + "branchKey": "offline-kit", + "branchTitle": "Offline Kit", + "source": "features/offline-kit/components/jwks-management.component.ts", + "routePaths": [ + "/ops/operations/offline-kit/jwks" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/offline-kit/offline-kit.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "OfflineDashboardComponent", + "selector": "app-offline-dashboard", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "offline-kit", + "branchKey": "offline-kit", + "branchTitle": "Offline Kit", + "source": "features/offline-kit/components/offline-dashboard.component.ts", + "routePaths": [ + "/administration/offline", + "/ops/operations/offline-kit", + "/ops/operations/offline-kit/dashboard", + "/settings/offline" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/offline-kit/offline-kit.routes.ts", + "src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts", + "src/Web/StellaOps.Web/src/app/routes/administration.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "VerificationCenterComponent", + "selector": "app-verification-center", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "offline-kit", + "branchKey": "offline-kit", + "branchTitle": "Offline Kit", + "source": "features/offline-kit/components/verification-center.component.ts", + "routePaths": [ + "/ops/operations/offline-kit/verify" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/offline-kit/offline-kit.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PackRegistryBrowserComponent", + "selector": "app-pack-registry-browser", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "pack-registry", + "branchKey": "pack-registry", + "branchTitle": "Pack Registry", + "source": "features/pack-registry/pack-registry-browser.component.ts", + "routePaths": [ + "/ops/operations/packs" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/pack-registry/pack-registry.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PlatformSetupDefaultsGuardrailsPageComponent", + "selector": "app-platform-setup-defaults-guardrails-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "platform", + "branchKey": "platform", + "branchTitle": "Platform", + "source": "features/platform/setup/platform-setup-defaults-guardrails-page.component.ts", + "routePaths": [ + "/ops/platform-setup/defaults-guardrails" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PlatformSetupFeedPolicyPageComponent", + "selector": "app-platform-setup-feed-policy-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "platform", + "branchKey": "platform", + "branchTitle": "Platform", + "source": "features/platform/setup/platform-setup-feed-policy-page.component.ts", + "routePaths": [ + "/ops/platform-setup/policy-bindings" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PlatformSetupGateProfilesPageComponent", + "selector": "app-platform-setup-gate-profiles-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "platform", + "branchKey": "platform", + "branchTitle": "Platform", + "source": "features/platform/setup/platform-setup-gate-profiles-page.component.ts", + "routePaths": [ + "/ops/platform-setup/gate-profiles" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PlatformSetupPromotionPathsPageComponent", + "selector": "app-platform-setup-promotion-paths-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "platform", + "branchKey": "platform", + "branchTitle": "Platform", + "source": "features/platform/setup/platform-setup-promotion-paths-page.component.ts", + "routePaths": [ + "/ops/platform-setup/promotion-paths" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PlatformSetupRegionsEnvironmentsPageComponent", + "selector": "app-platform-setup-regions-environments-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "platform", + "branchKey": "platform", + "branchTitle": "Platform", + "source": "features/platform/setup/platform-setup-regions-environments-page.component.ts", + "routePaths": [ + "/ops/platform-setup/regions-environments" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PlatformSetupReleaseTemplatesPageComponent", + "selector": "app-platform-setup-release-templates-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "platform", + "branchKey": "platform", + "branchTitle": "Platform", + "source": "features/platform/setup/platform-setup-release-templates-page.component.ts", + "routePaths": [ + "/ops/platform-setup/release-templates" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PlatformSetupWorkflowsGatesPageComponent", + "selector": "app-platform-setup-workflows-gates-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "platform", + "branchKey": "platform", + "branchTitle": "Platform", + "source": "features/platform/setup/platform-setup-workflows-gates-page.component.ts", + "routePaths": [ + "/ops/platform-setup/workflows-gates" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "IncidentTimelineComponent", + "selector": "app-incident-timeline", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "platform-health", + "branchKey": "platform-health", + "branchTitle": "Platform Health", + "source": "features/platform-health/incident-timeline.component.ts", + "routePaths": [ + "/ops/operations/health-slo/incidents" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform-health/platform-health.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PlatformHealthDashboardComponent", + "selector": "app-platform-health-dashboard", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "platform-health", + "branchKey": "platform-health", + "branchTitle": "Platform Health", + "source": "features/platform-health/platform-health-dashboard.component.ts", + "routePaths": [ + "/ops/operations/health-slo" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform-health/platform-health.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ServiceDetailComponent", + "selector": "app-service-detail", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "platform-health", + "branchKey": "platform-health", + "branchTitle": "Platform Health", + "source": "features/platform-health/service-detail.component.ts", + "routePaths": [ + "/ops/operations/health-slo/services/:serviceName" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform-health/platform-health.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "DataQualitySlosPageComponent", + "selector": "app-data-quality-slos-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "merge", + "preservationValue": "medium", + "family": "platform-ops", + "branchKey": "platform-ops", + "branchTitle": "Platform Ops Legacy", + "source": "features/platform-ops/data-integrity/data-quality-slos-page.component.ts", + "routePaths": [ + "/ops/operations/data-integrity/slos" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/ops and /ops/platform-setup" + }, + { + "className": "DlqReplaysPageComponent", + "selector": "app-dlq-replays-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "merge", + "preservationValue": "medium", + "family": "platform-ops", + "branchKey": "platform-ops", + "branchTitle": "Platform Ops Legacy", + "source": "features/platform-ops/data-integrity/dlq-replays-page.component.ts", + "routePaths": [ + "/ops/operations/data-integrity/dlq" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/ops and /ops/platform-setup" + }, + { + "className": "FeedsFreshnessPageComponent", + "selector": "app-feeds-freshness-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "merge", + "preservationValue": "medium", + "family": "platform-ops", + "branchKey": "platform-ops", + "branchTitle": "Platform Ops Legacy", + "source": "features/platform-ops/data-integrity/feeds-freshness-page.component.ts", + "routePaths": [ + "/ops/operations/data-integrity/feeds-freshness" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/ops and /ops/platform-setup" + }, + { + "className": "IntegrationConnectivityPageComponent", + "selector": "app-integration-connectivity-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "merge", + "preservationValue": "medium", + "family": "platform-ops", + "branchKey": "platform-ops", + "branchTitle": "Platform Ops Legacy", + "source": "features/platform-ops/data-integrity/integration-connectivity-page.component.ts", + "routePaths": [ + "/ops/operations/data-integrity/integration-connectivity" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/ops and /ops/platform-setup" + }, + { + "className": "DataIntegrityJobRunDetailPageComponent", + "selector": "app-data-integrity-job-run-detail-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "merge", + "preservationValue": "medium", + "family": "platform-ops", + "branchKey": "platform-ops", + "branchTitle": "Platform Ops Legacy", + "source": "features/platform-ops/data-integrity/job-run-detail-page.component.ts", + "routePaths": [ + "/ops/operations/data-integrity/nightly-ops/:runId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/ops and /ops/platform-setup" + }, + { + "className": "NightlyOpsReportPageComponent", + "selector": "app-nightly-ops-report-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "merge", + "preservationValue": "medium", + "family": "platform-ops", + "branchKey": "platform-ops", + "branchTitle": "Platform Ops Legacy", + "source": "features/platform-ops/data-integrity/nightly-ops-report-page.component.ts", + "routePaths": [ + "/ops/operations/data-integrity/nightly-ops" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/ops and /ops/platform-setup" + }, + { + "className": "ReachabilityIngestHealthPageComponent", + "selector": "app-reachability-ingest-health-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "merge", + "preservationValue": "medium", + "family": "platform-ops", + "branchKey": "platform-ops", + "branchTitle": "Platform Ops Legacy", + "source": "features/platform-ops/data-integrity/reachability-ingest-health-page.component.ts", + "routePaths": [ + "/ops/operations/data-integrity/reachability-ingest" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/ops and /ops/platform-setup" + }, + { + "className": "ScanPipelineHealthPageComponent", + "selector": "app-scan-pipeline-health-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "merge", + "preservationValue": "medium", + "family": "platform-ops", + "branchKey": "platform-ops", + "branchTitle": "Platform Ops Legacy", + "source": "features/platform-ops/data-integrity/scan-pipeline-health-page.component.ts", + "routePaths": [ + "/ops/operations/data-integrity/scan-pipeline" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform-ops/data-integrity/data-integrity.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/ops and /ops/platform-setup" + }, + { + "className": "ConflictResolutionWizardComponent", + "selector": "app-conflict-resolution-wizard", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "policy-governance", + "branchKey": "policy-governance", + "branchTitle": "Policy Governance", + "source": "features/policy-governance/conflict-resolution-wizard.component.ts", + "routePaths": [ + "/administration/policy-governance/conflicts/:conflictId/resolve", + "/administration/policy/governance/conflicts/:conflictId/resolve", + "/ops/policy/conflicts/:conflictId/resolve" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/source-of-truth.md", + "docs/contracts/policy-studio.md" + ], + "likelyDestination": "/admin/policy/governance" + }, + { + "className": "GovernanceAuditComponent", + "selector": "app-governance-audit", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "policy-governance", + "branchKey": "policy-governance", + "branchTitle": "Policy Governance", + "source": "features/policy-governance/governance-audit.component.ts", + "routePaths": [ + "/administration/policy-governance/audit", + "/administration/policy/governance/audit", + "/ops/policy/audit" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/source-of-truth.md", + "docs/contracts/policy-studio.md" + ], + "likelyDestination": "/admin/policy/governance" + }, + { + "className": "ImpactPreviewComponent", + "selector": "app-impact-preview", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "policy-governance", + "branchKey": "policy-governance", + "branchTitle": "Policy Governance", + "source": "features/policy-governance/impact-preview.component.ts", + "routePaths": [ + "/administration/policy-governance/impact-preview", + "/administration/policy/governance/impact-preview", + "/ops/policy/impact-preview" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/source-of-truth.md", + "docs/contracts/policy-studio.md" + ], + "likelyDestination": "/admin/policy/governance" + }, + { + "className": "PolicyConflictDashboardComponent", + "selector": "app-policy-conflict-dashboard", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "policy-governance", + "branchKey": "policy-governance", + "branchTitle": "Policy Governance", + "source": "features/policy-governance/policy-conflict-dashboard.component.ts", + "routePaths": [ + "/administration/policy-governance/conflicts", + "/administration/policy/governance/conflicts", + "/ops/policy/conflicts" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/source-of-truth.md", + "docs/contracts/policy-studio.md" + ], + "likelyDestination": "/admin/policy/governance" + }, + { + "className": "PolicyValidatorComponent", + "selector": "app-policy-validator", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "policy-governance", + "branchKey": "policy-governance", + "branchTitle": "Policy Governance", + "source": "features/policy-governance/policy-validator.component.ts", + "routePaths": [ + "/administration/policy-governance/validator", + "/administration/policy/governance/validator", + "/ops/policy/validator" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/source-of-truth.md", + "docs/contracts/policy-studio.md" + ], + "likelyDestination": "/admin/policy/governance" + }, + { + "className": "RiskBudgetConfigComponent", + "selector": "app-risk-budget-config", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "policy-governance", + "branchKey": "policy-governance", + "branchTitle": "Policy Governance", + "source": "features/policy-governance/risk-budget-config.component.ts", + "routePaths": [ + "/administration/policy-governance/budget/config", + "/administration/policy-governance/risk-budget/config", + "/administration/policy/governance/budget/config", + "/administration/policy/governance/risk-budget/config", + "/ops/policy/budget/config", + "/ops/policy/risk-budget/config" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/source-of-truth.md", + "docs/contracts/policy-studio.md" + ], + "likelyDestination": "/admin/policy/governance" + }, + { + "className": "RiskProfileEditorComponent", + "selector": "app-risk-profile-editor", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "policy-governance", + "branchKey": "policy-governance", + "branchTitle": "Policy Governance", + "source": "features/policy-governance/risk-profile-editor.component.ts", + "routePaths": [ + "/administration/policy-governance/profiles/:profileId", + "/administration/policy-governance/profiles/new", + "/administration/policy/governance/profiles/:profileId", + "/administration/policy/governance/profiles/new", + "/ops/policy/profiles/:profileId", + "/ops/policy/profiles/new" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/source-of-truth.md", + "docs/contracts/policy-studio.md" + ], + "likelyDestination": "/admin/policy/governance" + }, + { + "className": "RiskProfileListComponent", + "selector": "app-risk-profile-list", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "policy-governance", + "branchKey": "policy-governance", + "branchTitle": "Policy Governance", + "source": "features/policy-governance/risk-profile-list.component.ts", + "routePaths": [ + "/administration/policy-governance/profiles", + "/administration/policy/governance/profiles", + "/ops/policy/profiles" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/source-of-truth.md", + "docs/contracts/policy-studio.md" + ], + "likelyDestination": "/admin/policy/governance" + }, + { + "className": "SchemaDocsComponent", + "selector": "app-schema-docs", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "policy-governance", + "branchKey": "policy-governance", + "branchTitle": "Policy Governance", + "source": "features/policy-governance/schema-docs.component.ts", + "routePaths": [ + "/administration/policy-governance/schema-docs", + "/administration/policy/governance/schema-docs", + "/ops/policy/schema-docs" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/source-of-truth.md", + "docs/contracts/policy-studio.md" + ], + "likelyDestination": "/admin/policy/governance" + }, + { + "className": "SchemaPlaygroundComponent", + "selector": "app-schema-playground", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "policy-governance", + "branchKey": "policy-governance", + "branchTitle": "Policy Governance", + "source": "features/policy-governance/schema-playground.component.ts", + "routePaths": [ + "/administration/policy-governance/schema-playground", + "/administration/policy/governance/schema-playground", + "/ops/policy/schema-playground" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/source-of-truth.md", + "docs/contracts/policy-studio.md" + ], + "likelyDestination": "/admin/policy/governance" + }, + { + "className": "SealedModeControlComponent", + "selector": "app-sealed-mode-control", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "policy-governance", + "branchKey": "policy-governance", + "branchTitle": "Policy Governance", + "source": "features/policy-governance/sealed-mode-control.component.ts", + "routePaths": [ + "/administration/policy-governance/sealed-mode", + "/administration/policy/governance/sealed-mode", + "/ops/policy/sealed-mode" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/source-of-truth.md", + "docs/contracts/policy-studio.md" + ], + "likelyDestination": "/admin/policy/governance" + }, + { + "className": "SealedModeOverridesComponent", + "selector": "app-sealed-mode-overrides", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "policy-governance", + "branchKey": "policy-governance", + "branchTitle": "Policy Governance", + "source": "features/policy-governance/sealed-mode-overrides.component.ts", + "routePaths": [ + "/administration/policy-governance/sealed-mode/overrides", + "/administration/policy/governance/sealed-mode/overrides", + "/ops/policy/sealed-mode/overrides" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/source-of-truth.md", + "docs/contracts/policy-studio.md" + ], + "likelyDestination": "/admin/policy/governance" + }, + { + "className": "StalenessConfigComponent", + "selector": "app-staleness-config", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "policy-governance", + "branchKey": "policy-governance", + "branchTitle": "Policy Governance", + "source": "features/policy-governance/staleness-config.component.ts", + "routePaths": [ + "/administration/policy-governance/staleness", + "/administration/policy/governance/staleness", + "/ops/policy/staleness" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/source-of-truth.md", + "docs/contracts/policy-studio.md" + ], + "likelyDestination": "/admin/policy/governance" + }, + { + "className": "TrustWeightingComponent", + "selector": "app-trust-weighting", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "policy-governance", + "branchKey": "policy-governance", + "branchTitle": "Policy Governance", + "source": "features/policy-governance/trust-weighting.component.ts", + "routePaths": [ + "/administration/policy-governance/trust-weights", + "/administration/policy/governance/trust-weights", + "/ops/policy/trust-weights" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/policy-governance/policy-governance.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/v2-rewire/source-of-truth.md", + "docs/contracts/policy-studio.md" + ], + "likelyDestination": "/admin/policy/governance" + }, + { + "className": "PolicyWorkspaceComponent", + "selector": "app-policy-workspace", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "merge", + "preservationValue": "high", + "family": "policy-studio", + "branchKey": "policy-studio", + "branchTitle": "Policy Studio Legacy", + "source": "features/policy-studio/workspace/policy-workspace.component.ts", + "routePaths": [ + "/administration/policy/packs", + "/administration/policy/packs/:packId", + "/administration/policy/packs/:packId/:page" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/administration.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/contracts/policy-studio.md", + "docs/modules/ui/v2-rewire/source-of-truth.md" + ], + "likelyDestination": "/admin/policy/governance and /admin/policy/simulation" + }, + { + "className": "QuotaAlertConfigComponent", + "selector": "app-quota-alert-config", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "quota-dashboard", + "branchKey": "quota-dashboard", + "branchTitle": "Quota Dashboard", + "source": "features/quota-dashboard/quota-alert-config.component.ts", + "routePaths": [ + "/ops/operations/quotas/alerts" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/quota-dashboard/quota.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "QuotaForecastComponent", + "selector": "app-quota-forecast", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "quota-dashboard", + "branchKey": "quota-dashboard", + "branchTitle": "Quota Dashboard", + "source": "features/quota-dashboard/quota-forecast.component.ts", + "routePaths": [ + "/ops/operations/quotas/forecast" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/quota-dashboard/quota.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "QuotaReportExportComponent", + "selector": "app-quota-report-export", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "quota-dashboard", + "branchKey": "quota-dashboard", + "branchTitle": "Quota Dashboard", + "source": "features/quota-dashboard/quota-report-export.component.ts", + "routePaths": [ + "/ops/operations/quotas/reports" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/quota-dashboard/quota.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TenantQuotaDetailComponent", + "selector": "app-tenant-quota-detail", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "quota-dashboard", + "branchKey": "quota-dashboard", + "branchTitle": "Quota Dashboard", + "source": "features/quota-dashboard/tenant-quota-detail.component.ts", + "routePaths": [ + "/ops/operations/quotas/tenants/:tenantId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/quota-dashboard/quota.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TenantQuotaTableComponent", + "selector": "app-tenant-quota-table", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "quota-dashboard", + "branchKey": "quota-dashboard", + "branchTitle": "Quota Dashboard", + "source": "features/quota-dashboard/tenant-quota-table.component.ts", + "routePaths": [ + "/ops/operations/quotas/tenants" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/quota-dashboard/quota.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ThrottleContextComponent", + "selector": "app-throttle-context", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "quota-dashboard", + "branchKey": "quota-dashboard", + "branchTitle": "Quota Dashboard", + "source": "features/quota-dashboard/throttle-context.component.ts", + "routePaths": [ + "/ops/operations/quotas/throttle" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/quota-dashboard/quota.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "WorkflowEditorComponent", + "selector": "app-workflow-editor", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "release-orchestrator", + "branchKey": "release-orchestrator", + "branchTitle": "Release Orchestrator", + "source": "features/release-orchestrator/workflows/workflow-editor/workflow-editor.component.ts", + "routePaths": [ + "/administration/workflows/:id" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/release-orchestrator/workflows/workflows.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "HotfixDetailPageComponent", + "selector": "app-hotfix-detail-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "releases", + "branchKey": "releases", + "branchTitle": "Releases", + "source": "features/releases/hotfix-detail-page.component.ts", + "routePaths": [ + "/releases/hotfixes/:hotfixId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/releases.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ReleaseOpsOverviewPageComponent", + "selector": "app-release-ops-overview-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "releases", + "branchKey": "releases", + "branchTitle": "Releases", + "source": "features/releases/release-ops-overview-page.component.ts", + "routePaths": [ + "/releases/overview" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/releases.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SourceWizardComponent", + "selector": "app-source-wizard", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "sbom-sources", + "branchKey": "sbom-sources", + "branchTitle": "Sbom Sources", + "source": "features/sbom-sources/components/source-wizard/source-wizard.component.ts", + "routePaths": [ + "/ops/integrations/sbom-sources/:id/edit", + "/ops/integrations/sbom-sources/new", + "/setup/integrations/sbom-sources/:id/edit", + "/setup/integrations/sbom-sources/new" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/sbom-sources/sbom-sources.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AnalyzerHealthComponent", + "selector": "app-analyzer-health", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "scanner-ops", + "branchKey": "scanner-ops", + "branchTitle": "Scanner Ops", + "source": "features/scanner-ops/components/analyzer-health.component.ts", + "routePaths": [ + "/ops/scanner-ops/analyzers" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/scanner-ops/scanner-ops.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "BaselineListComponent", + "selector": "app-baseline-list", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "scanner-ops", + "branchKey": "scanner-ops", + "branchTitle": "Scanner Ops", + "source": "features/scanner-ops/components/baseline-list.component.ts", + "routePaths": [ + "/ops/scanner-ops/baselines" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/scanner-ops/scanner-ops.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "DeterminismSettingsComponent", + "selector": "app-determinism-settings", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "scanner-ops", + "branchKey": "scanner-ops", + "branchTitle": "Scanner Ops", + "source": "features/scanner-ops/components/determinism-settings.component.ts", + "routePaths": [ + "/ops/scanner-ops/settings" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/scanner-ops/scanner-ops.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "OfflineKitListComponent", + "selector": "app-offline-kit-list", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "scanner-ops", + "branchKey": "scanner-ops", + "branchTitle": "Scanner Ops", + "source": "features/scanner-ops/components/offline-kit-list.component.ts", + "routePaths": [ + "/ops/scanner-ops", + "/ops/scanner-ops/offline-kits" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/scanner-ops/scanner-ops.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PerformanceBaselineComponent", + "selector": "app-performance-baseline", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "scanner-ops", + "branchKey": "scanner-ops", + "branchTitle": "Scanner Ops", + "source": "features/scanner-ops/components/performance-baseline.component.ts", + "routePaths": [ + "/ops/scanner-ops/performance" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/scanner-ops/scanner-ops.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ScannerOpsComponent", + "selector": "app-scanner-ops", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "scanner-ops", + "branchKey": "scanner-ops", + "branchTitle": "Scanner Ops", + "source": "features/scanner-ops/scanner-ops.component.ts", + "routePaths": [ + "/ops/scanner-ops" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/scanner-ops/scanner-ops.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ScheduleManagementComponent", + "selector": "app-schedule-management", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "scheduler-ops", + "branchKey": "scheduler-ops", + "branchTitle": "Scheduler Ops", + "source": "features/scheduler-ops/schedule-management.component.ts", + "routePaths": [ + "/ops/operations/scheduler/schedules" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/scheduler-ops/scheduler-ops.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "WorkerFleetComponent", + "selector": "app-worker-fleet", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "scheduler-ops", + "branchKey": "scheduler-ops", + "branchTitle": "Scheduler Ops", + "source": "features/scheduler-ops/worker-fleet.component.ts", + "routePaths": [ + "/ops/operations/scheduler/workers" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/scheduler-ops/scheduler-ops.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SbomGraphPageComponent", + "selector": "app-sbom-graph-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "security", + "branchKey": "security", + "branchTitle": "Security", + "source": "features/security/sbom-graph-page.component.ts", + "routePaths": [ + "/security/sbom" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AdvisorySourcesComponent", + "selector": "app-advisory-sources", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "security-risk", + "branchKey": "security-risk", + "branchTitle": "Security Risk", + "source": "features/security-risk/advisory-sources.component.ts", + "routePaths": [ + "/security/advisory-sources" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "FindingDetailPageComponent", + "selector": "app-finding-detail-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "security-risk", + "branchKey": "security-risk", + "branchTitle": "Security Risk", + "source": "features/security-risk/finding-detail-page.component.ts", + "routePaths": [ + "/security/findings/:findingId", + "/security/triage/:findingId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "RemediationFixDetailComponent", + "selector": "app-remediation-fix-detail", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "security-risk", + "branchKey": "security-risk", + "branchTitle": "Security Risk", + "source": "features/security-risk/remediation/remediation-fix-detail.component.ts", + "routePaths": [ + "/security/remediation/:fixId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SymbolMarketplaceCatalogComponent", + "selector": "app-symbol-marketplace-catalog", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "security-risk", + "branchKey": "security-risk", + "branchTitle": "Security Risk", + "source": "features/security-risk/symbol-sources/symbol-marketplace-catalog.component.ts", + "routePaths": [ + "/security/symbol-marketplace" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SymbolSourceDetailComponent", + "selector": "app-symbol-source-detail", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "security-risk", + "branchKey": "security-risk", + "branchTitle": "Security Risk", + "source": "features/security-risk/symbol-sources/symbol-source-detail.component.ts", + "routePaths": [ + "/security/symbol-sources/:sourceId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AiPreferencesWorkbenchComponent", + "selector": "stellaops-ai-preferences-workbench", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "settings", + "branchKey": "settings", + "branchTitle": "Settings", + "source": "features/settings/ai-preferences-workbench.component.ts", + "routePaths": [ + "/administration/ai-preferences" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/administration.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "IntegrationDetailPageComponent", + "selector": "app-integration-detail-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "settings", + "branchKey": "settings", + "branchTitle": "Settings", + "source": "features/settings/integrations/integration-detail-page.component.ts", + "routePaths": [ + "/settings/integrations/:id" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "LanguageSettingsPageComponent", + "selector": "app-language-settings-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "settings", + "branchKey": "settings", + "branchTitle": "Settings", + "source": "features/settings/language/language-settings-page.component.ts", + "routePaths": [ + "/settings/language" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "NotificationsSettingsPageComponent", + "selector": "app-notifications-settings-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "settings", + "branchKey": "settings", + "branchTitle": "Settings", + "source": "features/settings/notifications/notifications-settings-page.component.ts", + "routePaths": [ + "/settings/notifications" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "PolicyGovernanceSettingsPageComponent", + "selector": "app-policy-governance-settings-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "settings", + "branchKey": "settings", + "branchTitle": "Settings", + "source": "features/settings/policy/policy-governance-settings-page.component.ts", + "routePaths": [ + "/administration/policy", + "/settings/policy" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts", + "src/Web/StellaOps.Web/src/app/routes/administration.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "ReleaseControlSettingsPageComponent", + "selector": "app-release-control-settings-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "settings", + "branchKey": "settings", + "branchTitle": "Settings", + "source": "features/settings/release-control/release-control-settings-page.component.ts", + "routePaths": [ + "/settings/release-control" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SecurityDataSettingsPageComponent", + "selector": "app-security-data-settings-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "settings", + "branchKey": "settings", + "branchTitle": "Settings", + "source": "features/settings/security-data/security-data-settings-page.component.ts", + "routePaths": [ + "/administration/security-data", + "/settings/security-data" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts", + "src/Web/StellaOps.Web/src/app/routes/administration.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TrustSettingsPageComponent", + "selector": "app-trust-settings-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "settings", + "branchKey": "settings", + "branchTitle": "Settings", + "source": "features/settings/trust/trust-settings-page.component.ts", + "routePaths": [ + "/administration/trust", + "/administration/trust/:page", + "/ops/platform-setup/trust-signing", + "/settings/trust", + "/settings/trust/:page" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/platform/setup/platform-setup.routes.ts", + "src/Web/StellaOps.Web/src/app/features/settings/settings.routes.ts", + "src/Web/StellaOps.Web/src/app/routes/administration.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "SignalsRuntimeDashboardComponent", + "selector": "app-signals-runtime-dashboard", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "signals", + "branchKey": "signals", + "branchTitle": "Signals", + "source": "features/signals/signals-runtime-dashboard.component.ts", + "routePaths": [ + "/ops/operations/signals" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/signals/signals.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "EnvironmentPosturePageComponent", + "selector": "app-environment-posture-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "topology", + "branchKey": "topology", + "branchTitle": "Topology", + "source": "features/topology/environment-posture-page.component.ts", + "routePaths": [ + "/**/release-health", + "/mission-control/release-health" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/mission-control.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TopologyAgentGroupDetailPageComponent", + "selector": "app-topology-agent-group-detail-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "topology", + "branchKey": "topology", + "branchTitle": "Topology", + "source": "features/topology/topology-agent-group-detail-page.component.ts", + "routePaths": [ + "/ops/agents/agents/:agentGroupId", + "/setup/topology/agents/:agentGroupId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/topology.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TopologyConnectivityPageComponent", + "selector": "app-topology-connectivity-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "topology", + "branchKey": "topology", + "branchTitle": "Topology", + "source": "features/topology/topology-connectivity-page.component.ts", + "routePaths": [ + "/ops/agents/connectivity", + "/setup/topology/connectivity" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/topology.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TopologyEnvironmentDetailPageComponent", + "selector": "app-topology-environment-detail-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "topology", + "branchKey": "topology", + "branchTitle": "Topology", + "source": "features/topology/topology-environment-detail-page.component.ts", + "routePaths": [ + "/ops/agents/environments/:environmentId", + "/ops/agents/environments/:environmentId/posture", + "/releases/environments/:environmentId", + "/setup/topology/environments/:environmentId", + "/setup/topology/environments/:environmentId/posture" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/releases.routes.ts", + "src/Web/StellaOps.Web/src/app/routes/topology.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TopologyHostDetailPageComponent", + "selector": "app-topology-host-detail-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "topology", + "branchKey": "topology", + "branchTitle": "Topology", + "source": "features/topology/topology-host-detail-page.component.ts", + "routePaths": [ + "/ops/agents/hosts/:hostId", + "/setup/topology/hosts/:hostId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/topology.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TopologyInventoryPageComponent", + "selector": "app-topology-inventory-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "topology", + "branchKey": "topology", + "branchTitle": "Topology", + "source": "features/topology/topology-inventory-page.component.ts", + "routePaths": [ + "/ops/agents/gate-profiles", + "/ops/agents/workflows", + "/setup/topology/gate-profiles", + "/setup/topology/workflows" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/topology.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TopologyRuntimeDriftPageComponent", + "selector": "app-topology-runtime-drift-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "topology", + "branchKey": "topology", + "branchTitle": "Topology", + "source": "features/topology/topology-runtime-drift-page.component.ts", + "routePaths": [ + "/ops/agents/runtime-drift", + "/setup/topology/runtime-drift" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/topology.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TopologyTargetDetailPageComponent", + "selector": "app-topology-target-detail-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "topology", + "branchKey": "topology", + "branchTitle": "Topology", + "source": "features/topology/topology-target-detail-page.component.ts", + "routePaths": [ + "/ops/agents/targets/:targetId", + "/setup/topology/targets/:targetId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/topology.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TriageWorkspaceComponent", + "selector": "app-triage-workspace", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "merge", + "preservationValue": "medium", + "family": "triage", + "branchKey": "triage", + "branchTitle": "Triage Workbench", + "source": "features/triage/triage-workspace.component.ts", + "routePaths": [ + "/administration/policy/exceptions/:id", + "/security/artifacts/:artifactId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/administration.routes.ts", + "src/Web/StellaOps.Web/src/app/routes/security-risk.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/platform/architecture-overview.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "/triage/artifacts or /evidence" + }, + { + "className": "TrivyDbSettingsPageComponent", + "selector": "app-trivy-db-settings-page", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "trivy-db-settings", + "branchKey": "trivy-db-settings", + "branchTitle": "Trivy Db Settings", + "source": "features/trivy-db-settings/trivy-db-settings-page.component.ts", + "routePaths": [ + "/administration/security-data/trivy" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/routes/administration.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "AirgapAuditComponent", + "selector": "app-airgap-audit", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "trust-admin", + "branchKey": "trust-admin", + "branchTitle": "Trust Admin", + "source": "features/trust-admin/airgap-audit.component.ts", + "routePaths": [ + "/administration/trust-signing/airgap", + "/setup/trust-signing/airgap" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/trust-admin/trust-admin.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "CertificateInventoryComponent", + "selector": "app-certificate-inventory", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "trust-admin", + "branchKey": "trust-admin", + "branchTitle": "Trust Admin", + "source": "features/trust-admin/certificate-inventory.component.ts", + "routePaths": [ + "/administration/trust-signing/certificates", + "/setup/trust-signing/certificates" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/trust-admin/trust-admin.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "IncidentAuditComponent", + "selector": "app-incident-audit", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "trust-admin", + "branchKey": "trust-admin", + "branchTitle": "Trust Admin", + "source": "features/trust-admin/incident-audit.component.ts", + "routePaths": [ + "/administration/trust-signing/incidents", + "/setup/trust-signing/incidents" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/trust-admin/trust-admin.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "IssuerTrustListComponent", + "selector": "app-issuer-trust-list", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "trust-admin", + "branchKey": "trust-admin", + "branchTitle": "Trust Admin", + "source": "features/trust-admin/issuer-trust-list.component.ts", + "routePaths": [ + "/administration/trust-signing/issuers", + "/setup/trust-signing/issuers" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/trust-admin/trust-admin.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TrustAnalyticsComponent", + "selector": "app-trust-analytics", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "trust-admin", + "branchKey": "trust-admin", + "branchTitle": "Trust Admin", + "source": "features/trust-admin/trust-analytics.component.ts", + "routePaths": [ + "/administration/trust-signing/analytics", + "/setup/trust-signing/analytics" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/trust-admin/trust-admin.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "TrustAuditLogComponent", + "selector": "app-trust-audit-log", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "trust-admin", + "branchKey": "trust-admin", + "branchTitle": "Trust Admin", + "source": "features/trust-admin/trust-audit-log.component.ts", + "routePaths": [ + "/administration/trust-signing/audit", + "/setup/trust-signing/audit" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/trust-admin/trust-admin.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "DeterminizationReviewComponent", + "selector": "app-determinization-review", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "unknowns-tracking", + "branchKey": "unknowns-tracking", + "branchTitle": "Unknowns Tracking", + "source": "features/unknowns-tracking/determinization-review.component.ts", + "routePaths": [ + "/security/unknowns/:unknownId/determinization" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/unknowns-tracking/unknowns.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "GreyQueueDashboardComponent", + "selector": "app-grey-queue-dashboard", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "unknowns-tracking", + "branchKey": "unknowns-tracking", + "branchTitle": "Unknowns Tracking", + "source": "features/unknowns-tracking/grey-queue-dashboard.component.ts", + "routePaths": [ + "/security/unknowns/queue/grey" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/unknowns-tracking/unknowns.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "UnknownDetailComponent", + "selector": "app-unknown-detail", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "unknowns-tracking", + "branchKey": "unknowns-tracking", + "branchTitle": "Unknowns Tracking", + "source": "features/unknowns-tracking/unknown-detail.component.ts", + "routePaths": [ + "/security/unknowns/:unknownId" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/unknowns-tracking/unknowns.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + }, + { + "className": "UnknownsDashboardComponent", + "selector": "app-unknowns-dashboard", + "classification": "weak-route", + "confidence": "medium", + "recommendation": "preserve", + "preservationValue": "high", + "family": "unknowns-tracking", + "branchKey": "unknowns-tracking", + "branchTitle": "Unknowns Tracking", + "source": "features/unknowns-tracking/unknowns-dashboard.component.ts", + "routePaths": [ + "/security/unknowns" + ], + "routeFiles": [ + "src/Web/StellaOps.Web/src/app/features/unknowns-tracking/unknowns.routes.ts" + ], + "menuSurfaceFiles": [], + "actionSurfaceFiles": [], + "runtimeRefs": [], + "relatedDocs": [ + "docs/modules/ui/README.md", + "docs/modules/ui/architecture.md" + ], + "likelyDestination": "Needs branch-level review against current IA" + } + ] +} diff --git a/docs/modules/ui/implementation_plan.md b/docs/modules/ui/implementation_plan.md index bacd776d1..3bc2bc6c1 100644 --- a/docs/modules/ui/implementation_plan.md +++ b/docs/modules/ui/implementation_plan.md @@ -10,6 +10,12 @@ Provide a living plan for UI deliverables, dependencies, and evidence. ## Near-term deliverables - `SPRINT_20260307_004_FE_self_serve_search_answer_first.md` - answer-first search shell, page-owned self-serve questions, and explicit fallback states. - `SPRINT_20260307_006_FE_self_serve_rollout_and_gap_closure.md` - page rollout, guided handoffs, and telemetry-driven gap closure. +- `SPRINT_20260307_009_DOCS_ui_component_preservation_map.md` - per-component preservation dossiers for unused and weakly surfaced console UI components. + +## Latest evidence +- `docs/modules/ui/component-preservation-map/README.md` - root index for the first-pass preservation map. +- `docs/modules/ui/component-preservation-map/SUMMARY_TREE.md` - branch-level keep / merge / wire / archive guidance. +- `docs/modules/ui/component-preservation-map/inventory.json` - deterministic machine-readable inventory for 303 candidate components. ## Dependencies - `docs/modules/ui/architecture.md` diff --git a/sidebar-collapsed-state.png b/sidebar-collapsed-state.png new file mode 100644 index 0000000000000000000000000000000000000000..6fed5e997d6639e83fb46564ea697cb148357c16 GIT binary patch literal 124580 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

}j&vxP+}C}jCpv<`r;quW2n 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

SN5G>Jn&uu%n$Cb7T>J3E=Tg$&l}I{( z>z+|Pzf)>83xzLRTjjH=JG=)l%j)sok4^w-P&hS*oJaI;7fuX}Wl{AVj&daa4Bwc8eQ`*y-CNAw`WaH5L$bnnp6 z6poxmFs?&C{b8YfA*`RJzU^Zxr8c2*Xs~Q!%X|Y0b#@t8W>^4{Uve^_F&#@x_$Xx7 zdIoJ|=6?0{v8Vzh-nI=ME!b7W`qfH8$-(UCoSN8FNO5N}CGr%{u|c+?;kv%hvp{3h zjcfnG&B?DS?(MzJGNhXN_(diaxYw62E>>pNL~1jt3-!s!yRh_cboV0JjAAmMP3!hC zN-niSsvgpb<=4op-_wr*OQSUnKJZ%TI$Lf&D+ynSB%nHmzhf7N@c_@g+#SRFI8(I( z$|d|vaNKsUI~Ig3gr{{)G9ibq?97?jccTaMFE6N95l^$zKXQz<-5Wals4$un^8FL)DsG71ek$|=Jbz;e#`Te>7 ztFf{1S@b)B=C^2SohFV8H3=S8l)@dl!)5m-j=>1%D-U#dSlR$lNbxOa{66LhP2ro0 zid)Wzxj@gYoqq56dsI0RVz2|jO=9(e6iLO!G#^IfQH0yETd}4EQJ|JCrLN_ZN=|g9 z6S|X?!B3b0YG9DyAN^xC4gy$M6TC+7o4PnK9dUq@bhWdpw9xGB@KB!s-SXC!T(Hjx z4+g0gYL#>Iv#TvSN_Z$UXq=8z|KwKM>=C5i(l})KASZEiQhBLM>X|VM@M>ra1uf2) z(jHX%CGqnQ>%7ky9xR!yW%uV6LeROJWN{E^pPmN=J$l==V!JQA~J1SKr zgOTyc)f&Pp1`GmA-mTsj_1imSSf_uHPxBy))NV=^&hLpTe^LY$GL{O$R0*^--9k>Y z#rI7llBl*FIj?)wjO_w~{s-XJ0fKxiaNNk41k~eT|JF$*HZ^wFH8l+_Ego z=~{0n>e?a!mo+>c7-qH;6m+&xW$#`XTl_p1*zdmAf&&5A|zK6hgVn?6^qNzl&)_bj-g`P29? z-J87=T6O#}(f?YNiLnc%Wnv;=w+-5UEdKf1{(im3fGpbg@lt=*OP3mp6(6;|@QjWV zN$-gwbwpye|3-*8UA%Cv{ea5w5*y-Ee!y5Ipyw5~!j^P~gn)Sb-91#TKW{`vuCr%s z#H7^fQ!xCLFYyETwVM;>kP#zU-3sngbRQ(t*RxJK_4}`>A0F8rk>7QVOPy%FW2wFi zIvoX^uSDKdu<_{u5B_bKA291Np@OA0_jSd<*BE+c+Ni(R`)T8nJNX>j|3@!=)(6Xz z77uu%-fCR93!teL)!2z~rPEVTv_TTIR6jF-zvoY_4Gi?QyF+({V(D)-XA|I>bs-Ov z59{Y*!)ii#voFm`f)=yH0?c@^XIj#hGkaw()Q_q}7+_=OV2ZZ86133rl2DJqBo-f+{Vk zSALTckD*a0IviHB!gx<|9-28(a@ZS_lE)DQzRscG&Y%vQVV?{ukF$gT0g}vc+ODaH zwchN?-w5{gGI2_i9+YgM(zXJM>fY63o7FIYM_lYrjjvs~!h5+!B@LorISa)lX!rq) zX=uD{65qgtobD*vhhU-triNa%Suue7H8oAYAZlBAxfN}eG;V_}#yfLSjxrP>LB`{` zsVJj!eI+S_#q_qu5!59;m+|A`KfVBT>pN&VQ)hMz?$+DgGKW40^)zq%Bc1nl;ZcCqE^98}R{%_p z^IBxg1At2)e9( zNymC@gz4u`(>EVU%=btl+Wb^Nl;kFCxmN4I&eJuc?XeA%E*uNT%oxNl$x5EG|1DnP^S)WG2l4MC(Kj|SkZ z0sGe}aXY~_5f%z2CM8j}M|)#n+MnK-v{&_KLWZ&5@g=pl=4I`AfN4NcxOcQFL0vgmC87a4&>PCpt=<9Vz0zegxAR4G*(_+DD-umL5)lb@@O{iJ7XWBoQCzL!AAtHLt$ui)4OyEGU;; zw6dZ;CbuH=YvOd=hc@j4Y@h#PDBvT;ZbL6{GA@F^YS1Hd)l`W`Th$)@fQ#CCB;38r zR(0_pX^Z+(2~^Cyk(ouD3<`)q=LO@eh)hdcbNF+)y|%HiZ7=|Zl;Qwfs0??h<7 z-@nWJkjf%!M+U-1rKs6NQ(jBr<*9e9i(jr5ne+h(*xIUNt{J-wheoC(Mp)i_I*YY$ z&Nzy=y>3K^ax*TZ!p3_O(OO^iZ80a)BD!>c-M`dRLS=Mh*!1^xPa{rzA~5Zu zI!XN&Z{^{fPl)z$W9n^?JTM~g*$#40v?##>_NRAD&hEWFcD(cREE?osXdw%T-iFpX zBNdLF*sqi#^4U)6d|G{DR>>F8!^2An>;*2`!_(Qd5)*T@w7pSiR!kiXT$OyNnU&@y z)l{cxhbOxB3eW!m?)X(e{22cmxTEf3A`l^y68JYTuQ+Ykl8>sd8MYaESDIJbQq}^b zV;2_QgYhZLDJUwM!pWW+osg%>VpE;txE_%XzxW8hcY!o~uoSdY*ms9dDx4Uv(LDfH z;b`hAK~8QfQ&mzr6RD<@midB)SSxQ1bvCOTuA7F07CXB$31XqOlE0-7|M@m#d3fD5 zfKO0b6EYYoH#5aOFpx(;XBV@vM#~2$$iUESA=O*iHi%u8Wx(QNvJ+fD3!zJ`FcVt= zvR*%1ZPH_!YR25um)GE|F=3J)qZ8WLYH7(wTJ#c{!yFiRRVP|z#;R22%|9qM*oeaW9=$_ zt;<=B;F8ohzEo0I)nu*SAKY}nIb@n_<{bhCP8@~RR$P5FWEdQ_fTpP@ByStHf!8E( zOhz+Cdk;{xf!dT2eS>tgR^~*Ix?6WGy54yWRiy>ClDhKQzp)2Lrkwn_|3)9ZQIO_5 ztqp*Db+pN#vZ@}%dB%Tnf5v+h-u`-Q{Db@E(!xGizhXTcd`l2|?<1K{S(VLaa86u$ z>RV1gL^g!C_c9a@o(0>d>~Ei@de*OKZ7m!VP93oY)gYi-_~0<>8`lQnI;~=OpQ!)9 ztM(M7Xk4=CjR{WTWAUzHDElRDD@Y$W*fG=tVEu277yn@cB4u0A82}bgp+vWx1aQCz zeNTt|L^isE;hP9bbS^Vzd1<1KmjdBz2%|J$i&vBXzc{ZmJkHdWu#l{c<8OVZSYGo1 zi*Gb9{HwlCZL1+T-@VRa$UY;yyL*bA*mF0P<_6{1$Wuu3QbivEj<`0wjyR0ugs zO%q@4be5oJL1c^9z2jyVUh+RkzPEd_0kr{7cqI1te3}1&zu+qEPmX zrneBpiO9UzeJAFBz4mmdqkV{Qo(ENS2QlCO6u14#S9^7ZOH%rOx0U_7E#sr!|3bLo zq_Rlci3qr^82m4$-8<-Do&er=#yxR(;vh6)5>XK#*MGi{kCg2L`Gmr_gMQoI`(ky2 zid&@HJ|dRw&#JqP#!FYikn|Cz!Al^CeP zu(zUJ`>d`FgM)PG)RXl{L(?uEIn*TJa$%1AXMOTor}43kNn$MC>)A70Ejj)$A?WmX zN*n*DhTyBMatS*W$^Y~O1A@J(QQ~gxB8&VgUNohc?yb~!hEcORj5xO!_v0n4A~~DL z&HA(bGH`{GOk!Zgz3sVvp{T3%!`9WXl%CNIijEsoWvWfVeMRPB{M78yQCvoMTo8Rp ziN#x-bvGc^ii&QJ4I2M>abpY~h?;@KbCH~;{}b8L&2 z2=Ds30}gM!^>Kz>>j(t@0+Zzv1cW^R%}aQ9E72orHK}`0*$8s#`8`n1*a3VvNyu;- zn#{aqz6rw%(z9i-;M;yt90+Xv6g#HMnhx2utolZFu>N`(Ic40wPt?IXxZ(i8MxI*< zVfPK#EzF%s=c$sRz8RsSmsJdFx)3uNrRFw5teeG_SoMGmG;w3xO?8z>imKt*5U)ra ze%?O1IZlv7rmoc9*>YVKC1PQ~@hWq%E*6ISb-l_0F`nMb=#R*r6Bop}7%fAW#*{)y zJ}wuJeYw&q0s~hJ0;dhfxKoG)SMB=yp17D-eVWbC_iRMQ1}R(ZE14xMpzF0?$F~d~ z+9?*j0EhL*5H%|yAp!KA&99-FD}O*kYlnXOa4b`vg$vCng2?G2Y%I7e%b@lc5bs{) z`b$1dc6kc=G(&r}_uLC*@8r>(f{MJ}x6kY(a;d5Jqs~qyDW63=V9J7gXCv<%892y`zEAOJnBVun zpLeLmHqNw)RccB3dNXg?dd*$t=qsSpevyr$$6k1c49p52-@y|9D>TyL>&drP5}gPc zIcD!?K`?-HLw+`Ne_J4R_w0DK6hW8*6bRh^X+|aza0~bp{{x;WUC3k$*}c5uLWA3` zS=aBM>FR8#`sZ1?Yzv;mA17P zK>or!-zb~2CSW%bWzOFEjgZ`SGq#l+Op+1urX-cmB1;>)N%f5qJb(Cu1B3A}ufDd* z{^381P}^XM`e{fM-_!X?p5X~sOM2%zR)C{Fpwq#DgfdrpU8`MZ4i-Dg6tF)J!$}5ECCv{Xrp9N^E$1cghenh}0v#*9BnSCboGBv}uB{IYfEq=3FmSF|Ac55B~5^-2=V54bo3nX1;9WlJ1^veaZx}L$C+xN=Q!64 zQxjGqOdx$`RCM&99uDyUPOpxs>u6e9S_DF{Lc9P+M_pFwLGq+Fn?h$q!U39Xd}AF^ z9-+j#m$|cO>wtM5IGCC90dfF1cg^Ut@zedBdwpQQe|7?CTyyaq>6{n%8$f>EMTUJ#( zy(sY6=nzQYlMCpT9tIGn)X}NNz}4kc^P$t1*JE2)n&+5Wy)Yua6*BkIEznX(-xcHj z6n1~=(~?_QsQwbE#qKJ3qj&82WLdTj*b)N|FHf{*Y~Au$uX{bVIRR&05o}6IYYl%d zzRUD;zLIsAE#_nF?*E0tho+FZEMOuR_uSELrhg|ScuJp3CQ3q)ps(n%Bje%7_Rr=$ z85(=I*ZJutd0%q}0EUPE=Ge0m+;(w4BI$F5O(6wNZoe~{iQOaS4T>F0*u3#5EM!ao z89dr8IMJfW)foUqt%s%iPQ#YK3Y~kmb~H#qskv(lCJ(nWqLH~M7a70W8ea(081@I0 zvi4sGZV<{1xHt+Hd}F$|E^`b0Ea~u0CD9INCM&fyGx+k6fBoYN7=8$3N}~!uLUwd; z&X>f>Cu;M1TCsjgCa(9Ms}*F7CQ3GS%wqTs^p5`3}0e83Ln#k35>V8S>*=G$9YN& zrlYg*br`QXqrxWWlySK4Fbh&HuXi|~41;eO25Y5b$BvjFc)uq}k^$bWju+PYsIc

)28j!v^5J+`7Mjb0sp7<9H<6QBOrN4;Oa>GKb%Ant$Dr0LXp&v(U3m(*+am^>3m z@|M~xqN`~)8vf{QGFtACsLZCqQA2I@VJ+u;)%66<>_#qkS|;tf@F`#6)3A~n)$DhVYTlZNMpJ|( z4aA8Tk!k&7UVkkXSDrcgI0T=NxV=8`QQ9YxJX{D?-hw%}f{cY!m(~ndeOeWJU#@b! z7csHUc>ADX$S4t~&P0`ftz<`AK&G;nnNb3TN;{LW(4_BPAdN6zN+;f2L_Acz{H=_A zvYblgsZ=K{)$w)E_9-894mr$sf z<+7xj8r4%uvc{si4f)H!are|mHY7q9e`H6LMAJDtNWeCwxGb%+yBeQmChmkX!<1?Q zWx^W_K6k$Ub9o7wPN$ssEdD*;FU)_&Lnh`M6#6(XFTQZ1TvH55o@w@xJ~ z*5OTpGq7{6y(|PZqTc-HiFaRVL~*toOV9xI_D!u08bmVeRt!#QD4hI_8!!3AO`n7_ zx1qaG)@?OoT`|?8)?Rd`Z1v#7u78&AcR$er!Yo&F3#fXKO%=Xy%^ErVAF{qOAdaN@ zn}iSo1oz+&+>+q#?!kfw2yVe05?q42yDqS}OK{i47k77GQ_~d9%Ty@{rzQ^d^t71WuLd&aQ|#khn582|+{b141B##Wt&=D#`Cp+lL7ve<4m?fvDj-)^PiIZ z=cUOzF6PKsZ9L>yy=EtMDJA{N8A+-tRQqz4zQg|REDUlc;+eKeFY3H;eR+AI z71$32nx*@n%TzFBbH#KA%a^MWWOat)PqY2h+x25V$yhQ7fbT&jV@Z zvoAvFq2@#mcz=j&=Cd?Pc=+Gz6%0(IxG+jM%FV0)j1u}e?iGqZ7$OMUr+N!*+TWL` zkkIXa=itm|lg0NqYY`poC@Lub`NSWR_e~zv?vGbM6f*3<}NEdIYYLbT(SvzH7d=mP(w983*en^;S)alA9jG;sM2l8b6J!SAs0o3b#1 zu+W1eNiVAAxv8-MtI<6TmxkuUbVgfH<6VXxJvfl?e@&WxBG_0duiW`gqM%dXZ(v&t zo*JLVW3l_%)*6q^5P$q2_~$sUpt`8xmoED9Nk^5Ig??LZ0dnW4E78rvbJY#Y*)zU& z1^4vl5GBR1L#Z;^Nl;wTH9l!G;H;aPrTlk}K^Z>3j!wWb&;TfNQnEz|x2Ptw7K|)VQw?th))*jRBL(ZL+51fJflj?km!5289H-eFe*@pqpDF;nVtgX}f z`RYck2H_9JkrLI=wfL`8bpD4Gk`kNew{J0uN{OMFovTM)sM*Ye@BS<6V?A7)(4_PL zmhZJ@_#1jn28{_uR)bMC%1*>^}Cy{aAG)HR9k#M z<}Aaz?kX#*ndaY&R~&0i^S^&h^oNlqtq?wt1`IXUf(CO8Fur~>yqc^)md$VWA;QL7 zuDlA?-}zrX0+`)-QuyAKy5py7u#llh%geoH8CfeG6qJ8eGz_U6bnZ&Z%3FN?@F$-R z1GOD}qunBiivOHKPy)F;hHCzQcR%Qj8D{4Q2>+qoBxj7dIOie1x7pA_5O2nHR9?(6 zNs2y(7O$eH{i6tPwEfdkn;2C%3+FqRys~>;c;uw*-$-&*Sndko5Tp-PiDgpso$6HV zY8s>oLypT70JEI#&Ue*q;SKwlYJE*@Mn|5$!#pM$2%~kYLP)7 zn$T^<->C2B0U{V9XmasS3t@XsHw?E!6r!EsaG&uIngN9c3=-uOeFCBIugA2*(KY%bXC ztHX)JPUqh`^XIl4sH3|=;BmQIiQaiWJVnT#VnGFsnxbzz-Wx?`(P4uX7c-#HTtD@x zl>XFz4`;o1K!7u9y?R8BjeTuOOPQWt4%^RVC>MVFsBIXE9I)0k48uBk<%({C+MOa- z#a!<@s9Mr?N|;OUE65Z5zTBSm=Tm`+o=}#iClNeXu&$&B(cSB!Sps~@CEh(>Z7NzZ zZA3aYLLRdp8oM#j`c|7o7l~W%7bNk((ao1|Kkm2(+~Iq%)svomIh;Z?GG3NjpbJ&S~2wm5Bl{6jLao!knqb#V(B5w(hwmSEUt)~DRyDp&!BcF!-?c&d*F+o35`Ac}oU6s-;!!Sj zIA%KnA8(@jZwkT3kMLfHWX<@VdVtSj9yylRNDA|$vQUXBQQP=khZL`c#;X zri;!5BEiCHA9se`A?g_(gJZeWOW?yAnOUrxo663662Hx$mncMh_nPgI=-x(0wQ{ZY@1vyx#8K%G2{8^~b*H@$9AQtE0z+ z97~luyP2yz?;cFKTu9mJ{C);tPJ{z;!MxP3%DBGk)y9aGlw`j7@@cE}=p)8QgRkVH zw|@ESxJVff`;e8f2iz{d3E`1jlQCAZ#_=e{ZfInI+kxU{8US8msS{SfCfFwPdFM~3 zp}S2aaeVfi86B-)-lua9f${SGHH(Pkcc>a<-Xj7hY8PFO&U@mF7fC@p&5tHFW| zZ%@c#f01(qvp@I>)fkCcsUg&ogQsX?aoJJccxblrB}pMt}=Vl=IK6@*3nKrob2 z?$nElgSBzgHOud*RjQW#$c1afemHCF?C2MuMaz)rI%ksg@OBM*{^w=NmIfKC9I*Up zsqho)0>XENp@D}2677vhN2#%5(tG;h-TOY{V$T+{B!z`?u-G#)_^aZ)h-^@#S$o5Nuv)f`QR4WxhL8_M zJuk1$RXHp;$blF$wfa-l^%EwyS5-?+ne&&oy~?og%9fUCeEPu?f6f_z-x0{xxe-4Ph95R(^mWTpkdkVPuBe9PJX;0vNGcSB-0F6xXnZT zV%?25gpINuc$MjOYpw1f${KFIR}nkg^!Gd^|MrQ z0GCUJm4t+5TX*s_n-IH4dfp&BC#%?M?3J5e~WyIA=4U!Pu&%gLvXPp>T zJssVxJr*9c@43R;Kry6Wl}%_0NpsNQ>8Ppd&H># zJVlsXQk}5>fcBva)=g7K(LtYB*ryLZq8`g%T)fXNH|F4M2hjN5Ej+#Dpwg(Wd)Y{$ zFe1_PhhQN2P`glc^i%eFtn(5RVGjEe!ZpqV-#lc0I*EyDEu&)G-Iyp;=%1xocF8Eb z$!#_d5cLXw?h~L_pizqkSeD&E(_CjelgEj|595fJon&{k>@MZ+zdLTC;5UumHmaBs zLZ9$NamMx)L%~JBu)h9h9!*-*MyXzCdRomLQbvk?zUN_3Yy}p5sIKkfqs=CS3!lvh z(by^9Mg3I1cR0R<+gZUuL5sp2e({FjNi+dt&RhhjEzd%*FS!udJ=1pHxg!!B#YKMug!xERsrT+YCC6m6`qBuB!ZAx3tQpaRiwx!&4X#hqkJ~b8u z4tGgSVO~8FD_Pqp%-ncB&LU<=J$NLI43{|=60 zj__2GRXT?y04*g6?UF&)VVTm^Q-(mMrpL~^yeg+dub`5E*k3hO?_*qbTz+m(=FAXY z=VVr!3q!E#*^!uw0s8ww^S#f8!oFp}f0335t=n=U75$ONNr%|gZ7sFU#OBs|aYID3 zAp~^rG>6^>ABJ0|)xQ84U5MMBbeGlL$f|2p!|>or=qAXwnm^({Bw4`foU|Wht#`KE z{z7NFKjQ<7+;?4@6t=^Sd8s>XOg-AmrK!c1=b6jzbedf*2j60xA^d?#z=e}szkJAa zFMSSS*($>e4t3BpEV0hW=iOjH3n-{Xfn0}h=%n0#{ngcBlYF>b3ffH&G_*0Guv1wn z+7lP^2Y2Ws#d0`6{=;4a%LQ}bouh%1eEOw&zz)LVzG;UYL4|q}bJ^1)=-KiMr?iTl zs4iA_-5fU4SOPzE?b#SKlv}^&*PgkMU}R2x_fT zZOCY;6G*->rtF*AdkET znM^=?#KWj^ZYn617tPbEFCvyZ<^7y(r%*b_A-ay(_;){ zsCam>fb?0CQaU}QC`Zt=0aFPHy?!iR5kEa3n_w+EoFQ3_r;#jm)l~ovi}Wvn92+0U zs|mMZDYMjEX|(I*dZJdBFVpbM_%K~m=V!a23a#g%QCM{e)_;D6k%MRVI>_2V{0ptd zJMMYI?csJZgi*&l7J+(>ec!Op zARZNW$+fx!?2nC(TS2YnSizUwdAc|IDy_M=ic9`{1(bWpLjZ@TrB5<4KdPqsfVNsBX6E|H zpd0iqD+4$V2K23F(}8!75p*JyG5uJGal$ypu$$;D40NtOZoEQ0uldO_183f1_~R+R z`w{A*O$@Az?p;?=BfrnZIkqVTk<8k+B@1? zv~F?FeKArEN~7d50;bYaQjCw~%ZO#`g&}cYcs&y<#zcjU(TG2!I_#~4WOW%aH?Qr8 z#NeitAWG#vI_`~6l$LdviiVG(RP_0bm!wJ5Au_w`hZd0bpD)>()?N>^cHAPIUW&Q6 z!jYkZNQj9tlpMYB^RM0Nj$!>u^K@MZs|KpoTkr?zM+!{28J5}>7Go1(iFMH7ovn|W znWpEu98Pn5tKfpUT)N4cBuX1&eg2Xy!GauvEzbTSsHsbkQAOy*v*1QaR((8)H=KlJ zE3{4R@va6D(X1AYxud^q?|1q6uY$QLn!{v!+D&;svw9y7-`;pT>B~bcoraSt9EVn+ zic`;A-JH_P`NI)|fQIJ7q{HS@rw{W z7co6}@>k-{p9qdx)FQcAGsHmSB}p`$)5Sc9Xq(UarA9@f$8?-;Y#fv@==J^KL-VX{ zZ!MM&imP+5C^`zTQ*P(B9lo=kL+*khI62ik-Kfq{laHgvHp zM6bncHkaUI<)aGP-1_03!jQV1fSLn9YErNTEUx;ne+jX;q>O6LEUcdgWzrYznuZwA zaLz_0pm}WqwT=}j@RWOILaaY4ML`P=ayEq*$EC&@?5-O9%`_M6BcEEf)VP?RO^|o^os;++we6K$Hm5sTGnI7&>{t->*`@cK2zR2+_vmc(Y}@o zZB-6XNLm}85tMc#GGfdZYxg#E`|N2vxSdW($Y(AoxEZ3`nnZ(CHcGi-qn3i&kJl$wjWKt~Dv zEm6pm{}YNsM%($$OYm0jhvX1po2vVcA>3Xym-O&R&bR<3m*;;qlBOxJzcS>>F(eFZRVD*)%>#>yA&snY+}L=CJZ9y83;xBk)3M`{sV9`Z@%1cLFr_3HCkUM^_TXL?ZX+GuI z<8TJB7&Ane*n9bo%mk6g= z0{-gkPwK!3KY`pXvpt9X?B!58*z2tWntDPfGb#QhRvqM_WOv@z;A-f!VL!wY<>TbO zS>I0ZrMMlsHrQo^pg3XZT%&vX)*lB)CPRvNx2(4$K+L)J)T!`dUEiKz`O<~n+qBt(9H z52zqu^c-5|ji$(yY%FT!r(dNxE=KSV4n=j5bK@|i-(%^63M+IlCX>FtahP7lXA=Sz zWeQ3u)$M@2uu+Dhql3>Mj#9GLJeg)~_4_Zi=m&#QTRk7f28LyzwPad%Y5mJ)J$DxL z>bPbm2XS(VtYGogQQ?D}{a3_vAnFV;Cdb7N1ZwiNZ0m$vPq}K;;U3E|&!!ac>XN6dc?m*n!zhtAm%g@js*|2@RnCpbOt3H$aOnFr;>^T~!Xu zMaLwDP!FZ*IHp8c9uK>}T@>3qY|WEV2rffI(1Id{u7{4YRgx*&Q9A$tB?e?iCGclA zUK6Y9mK zD!Wz^%)j*AH-&IL4XLaF(lN4CIgroWH|26XmGM>}`7AZ46NM7Dr-1pmi;MGP2e3fW zQ^|9(2jtBal=pO?zaHe_>)&|_AK((;g7PlXC=Wi+FHdsBUZ2HV4X6xn@S?N1&`?>H z$<*vakVk4azCjYFgE7O`%uM#I{Ib{#2mOaGBn;jCCPy{7l7OQV5c-Ts)xDpyWIq!B zyU{hl2c?TPz4IEOsjqr6FGFx&LPOh(RAQ@|h+vJV`P}eyW+&d}cqT9%x$o5#f0gz+ zi8rFCo79YNHu!BP%si*S#Aia&I|<@GIx&I9%7JX>zMh<+&&;dm6@@L<)~gSL?s1p+ zXP9sJWN25(z*AZ}l&psDT%TxBE5xNM?LU05>&hW8FY_kSHVvK+I!p%XV%WPDx*sjD z{Y2TvkEb0?N;o^ z0=n?0liRHRSM+qHiWGXp!x)8ToD3Aebf8Q-3NKqe;`X9mT`RlAxwKi7exKC5>|POS zTq@f6S_Y`I>fUleS=W!(c&9lw4J1O|ugN#v;Jls5lxcG-u2H&1ZYR9b@tSi#C9SYb z!)o01qrkP9+zTN$V0~Kg%`C-az~1-c!h1O)-~w4%P&L8o7V>_mvIsFd6c&1G3a|>r zeb%dC&8vB6P2MU!_0o#dMc-G9pbY1)sSW+fz>-q!{1!y|s!}Hi>V!vj{$Yn5aL~k| zFpdj7Q87z%N~^1=o3Dk%&HA$;@SBDthd4}n%?_nvIDx3U==$k#7U2T2bMq(qUQHnh z$ADB~C9HDH<7$mk{%Rm|YDx6vb@lhM8lst$pg_J-!W0ffOHgMxl6Xl z0-yVpB!T1Y*=EQ0VnV{)##?4?&0E~SvfSzWlNWMg%E+E?S;edJ{X1Ec<$#M!NE6wr zi2w9IQ@Jq17gnm@|1@~;_eu`~lbfYx)FfC~+$(z68~*Wso-R`4hGK8O6(!61oVb5H zO5X%+?Z!&KMY=eZc7$w1YMpBMw3qa`0Wr=Dt>G4ckLRJI#ezCPtQEg)0i|f(4m&@P zXU@<~u?=#%zT{k~Mxi_1&rTb)9rEKv(-`HL_^-7HS3i*!HKFaS^wpecPmcPJ-=7JE z*U~3=Rheoly^7~}2|=X!cmqjq+A%&4X#AAj-Dw(n(V z|1ya}hp$-zhr)!OLzXU^?)`4w(Z0I+p@8Hb(+h6S;uU$yj+FRFO##`wfgg56H)LV2 zJi-XKurS_0Q;BLV^E<5mL*rN70`>8$&4#Yil>q*^GR&G}HYPhh58F_{*GQrU+ny35 zT;9&DE5Tvv{c^e+^5;ZwJkSV4*$Jfgkn5X7#%vVyH_qbRW!%?QW@?mUgu7cV6w5=%u_^>TO76Z?HfzR*o zvqv>_YxoVYIC~-4>^HlGqar+`)6#l*IFrPeAAxM@L1QI7obRGzmXLrNG~xW0!#}c; zN3QPDtK#8uC$;;2dO2I4mmHPVCLgW0ol0HsymQ;TbjapiKb!1tf)$H%nS0jMV*Hv) zJmYk+=UXv7(F@1>Xl8GbX4Xtdww}%Ad2zB_Lyg2($@%A|%K~Ao`KXQaZooXb%do=z zmcbX>(zA9SyXL$gRU((q)sP}*nn#lB{v3{g8M8ohQy!b{&sI>IN0nE=(DQs3{}TJQ zLqKA~CN+z6+I#vlUv?&p0}K`~Uc6z^%yqy(dpj`YDSLNQnfk}aj~{<{XMC_r1f7tf z;LkM_k$hmOIyYFylz2__ZnD8!TbLZhM;4E##OP22lBcN^g;P!B1bMFUVt+A~pr-5VBczn~cv##}$ zU#Dip%k4u7Js}@gjvy8x6c+c{Gjg@rJNtA;S*5Hjqk_~=Lv?#(0=5WLs~g6D4iUYo zv6Xq{m&kb|C+NGj@NOd_|>Ca%;XPq>h-xDh{R~?Ne(UGs+ zrJgpT2AgzN{?G_Cc>~%T5$bs);t!x75!d6b>3?UpKJf4zS~4}esgU&J;ytb$^NfnR z>*?9BV@9BYh~ECbxd3Ve2K&RY(Q=s^cV1qe2G=c!$_;OCzq-WpUmqnJVw-o_mmPk1 zSHIUi5w&wJ?bKdp)nA&*g3SUu(PqMrMw9PHMS!}Z*n!x% z@e&%TZSe=(gYO>a)4u|Umi8quCHmehTk8-V^9y8Jr`TK{pDLxf>O;Yb_o9P_P0j%Y z>*E#{M8^0Sz+y&?)(+J`JkQ>c;BA~1uP~~{?CL(6{N2wH-?`t^d(8I$4ADezp1sEr z5O*JyFsJJ>S4ydx)qk2SV2-N7bc1kX&83~}$ZIF(*7nUfhnJ8OPmCETqJ?GUTET-4A$ji`8l-dRGh?b=k>j2RfPYJ zQVIqONI-*(>D^xr30 ze_;Zyc^Of;Y`l;;hYVJD6`Q<&W)do zUv&&-G%`H5ItgkHKP-_Vv{)a+^Gm={eLGvrb6I%KfpjWy+!vg(a)5}Csp`w9a+ARC zJmDh;xAWv4ebw#6hA+VyMP!NuVrmtn?^e8ig6b`e4^*2cbl}vlXTwwTYYzynvD8uP zf?-n^t-?|kKCiXs3Fs>8y=h*^FZOe_xCV~$)n=4uN)|6K_LLWE%jF~$>Hegim?tE3 z;BHCO2npO}#n*2r=#7LX{)8-#F1v;i)0O1VP(#7)(u2DWnuGap|GJ3}0=Ms7`fTu{ zyq`U}KE4T=KwUz#kjEt6hV8IFS#GD5K0wrP3@Be*<3_-7ILLRs7`HZvp)|sll$XCp zgcn18=n?;L!JX{31;mc0xtI^gN{2lR?g}OEK%|MBb;~b$^_#=D9T1(Q5llp^4$)5pOp9_KNY61!5M0KVAg?^xidScxZ&# z&%&Sky*?^RH0dZ@QA4M3zBq`g9%TBV$V_85iL0KAaPe#TJ`v&Fn;E>%%LED9ZI>sW zXMrUP%~I*sm^~=x4cBjX<_5Rqk$(HKPr3oG>g{E0*BqBK;MEdt9tztaUMqG@--oRR z4aS+a2a!+~5}TY;arVroU~e_#=e0a}u-O4V;?zvx?^vg$QC|0D7}D+OLvwh&Agh{} zD{^E}_PFK^34ZOriV;ghj0ZFXfAa7PeSO%P7W$-EF?zk|&2!9Aw|B(^ll9X*A+#kt zm#GeucYU!@{rn@G!6&ZK4(}ADjh_B0ueOX2)|EoOVecQQJ z??Tjvmzay={AayiYdDy6FSWJ$%P4Wv{z7BO5fgK`eG+#%`o4~fnpV$XS*BofUXTT} zx#MqKg}g#tDX8a97=-Mf-1ZAiM_#TYdl3P6?=?{G14^lrz{LQTE00(am$eN9)>{SccGc8IS;SlO;bx?# z{fa}>^ZIcoH^-1XHF&%;ZI91zpG&^pv!@)Tw%()3#(EjVb_Bbq(1z)NLnAXXC}dtd zuoK#ibD4$q7>A~%oYYg?gP#zTsWjIPCjJO^PZU2qU_qF!@f1skPWHLZeGEr zqoW-XZ*~h~fxR9|fAhK4a6gs!U{4B7YhY|2xD#4e{N!QcC^3?f%`EJY!-Baa=06H- zu#jR2&|qLkKwzdok3%BBo*Nq~H@o&^e!O2$Z92jshwfxn?Bkzyv^fpu zSNLlX&EySJ$4lLX7#m6iP1cOn9jrzLqBs@TPR`S&=C|V!t)=(4z2th-XE@wmO{khH zfL)>C-FM$F&jU-iqxsynsgMvD@#Xnl77rgP`(aOZ?qZy&n}{x~a}~Z1&zCCG%PUM$ zm(}2NUT7u|L2$r1%+n8W>79(lPw~3);(cCAB%!lUoEUZEHOH-bMzX5gIE)b)*H^C~ zJ&Wm|rqZ86FJ|2bL|_vL+=em&nCf}JJh~;GhG{=60AI1hey+gAwJ>`EzL#)9FC(LNbvYK`ZUN zjQg?sL69#?_?A4lR=)&s@8^dy%VjjnHlsR%R2=B0PZ6Bbx022-q9pN?Zp4IKOqDX( zWm<|@cuHZgtd!)YDbBgP>jo|*Nv9)Pby6`qD}Plr77L5Ql~IYrFMLm~t213Ke3&3l zuD0mn5_F)7Y;MucZsp9{pXB7qt5lcz-@}LxIG)v+^WBEg&Y&rTAIDG}WqJlACHuJI zxld+2IXzD(fS5zjrK93dW9zU!;+y$1@)c78*vHJV5mLB=pP0AUfY0Zc_lbY0p42

0?~Av-WIq zRkafF+)jr6SNzJD?RebeP7UI$K7ok`$*2FEWy*P})uh(S1A@bX z?SVUAoj>j70yB((<|js(A!pi=U3R*xCW*saW4m1@g08Oq<%IBTCwiAJ{2WidHK#J5 zFPe^5OBPlct$xK@b-5J%Iw_5`UmUH@@jx%`q9M^^@+t$fU>Ve-n_(3iILD=Mb;#$$ zQk2M;v%c2wrNxA~J*DQ|1O!;R1dQgy3K-A49K>lb#aN9lkFkH60&v4=;@EHY1&g2~ z$mV`AV$t8df3N1VLZu{O(S37(*>3jIGD=VchZxm%d<$9OKh>rl2gqUk{--% zI184h6M4-yXtPzCXk4sV!^yNicFA_F>_Ck;qJkShJnz0H?eS7(>C0NB&7QLgnfR&v zP`8N0mRs5Zw-qQKAvp;DX}K&$otSb}u(TfyXrtB`YOGZ*daj-QG>09<_eG;LofLyg z2gm;C=Q4FRC{eO|z-(k|&evi88aYZWFlN=;?s_D%ix)+1vCmd@${aV|23h*E-Np|~ z-Wld}l^Ws7hlnHcJqkDqq=?J&9<3tD#zCwC(wz-mgcOmz5^3GhsT0Jx9lapVC41au z0h~S0CHQ5Xm#2Md|R(!spWD);?6$DUfvdO=R8l(&*?gV zWvq`&-@t{GS?b@{c}5T*NqD-P1sf2B{DxI)v|Q(#zF>~3hi{{fo4 z=zYtK`=Yb9#1LHszNh29lFd`9U2=2(>@B_eeCNXqRNNhSS(`H0nPeC5Te{8SSBlzq zrUIQMTLCmME6NtCC@8DtzG+i{!a95nt`8qnpiyOec69y=%Olcl04I5C-JMVxc=vrA z1po-@3&NsK(C=IBZKI=p&NI7>X!pi|@k%L3p)CPX&#T7fu(eN@o{5-qwW%NT)^g#E ztTrHHyUDN&)o4E7uoeF5Xy?-Fvi7`#5VmCE%zM}7w=G~#Ig@s~*6O}s$g8&uv$aWW zb~81t>G0!6)wG$Jr&a*l^~F+~g2LV#S64`uX?pJM5KrAT!`Z@y=L(RBX(Od6{s==g zX8Hs3*~UZz|3Ssz6^6Z$o~;3hfBeH*Hv+e9;pF{o-qmCLOn0*+XtkDom@|F&+tvBvA#dw9t(nX+2UY4NUI*TIEFP|43+`JINO7-0Xa=&xA-)x6N&Js*9AFYs$~rHdOVfe|Inv@15y>Bx$fQz4<}D@l zMpfMu?jAVmm?UkwY`|Vm;?=@uOc`#OJnn(lOIApi7>^6CjZ4U&Tn;UZVQ_->a{Vkv z7>!8+v|Pl}t<9XDqxWqYVHuhB(yLN2pGy`wN|(!dPa&UJ-H%S{X8UqKx}+qv^TvCr zj~f-7H9Q}Ft{SG_i!?E{GJUBmc8XAIrhVJ?ETwuW$n$tCW3JO1?0&FjKwbM(Hr3kk zn$|@^vw^W_|4z<@9p?gNv4Q2e6uGB9WnIb9mn`&Mdx1*xdxv{63PZC3YV9yKi=62c zu|04|j8@{wsFD=q_4`X14z_Jw-jnNRb!Q^(-rD!fR;yQ?t>AcW99?phz^^<}E#t^H zegD};R<^?)WQ@Cny-a-&pqc+^nBOm=D_>&=Ek~AcKd8eu8}J5{aspmkHFm+m=5jh2 zrZ>IWs`0`3@v>BlN50O>*aDx@5!;Ac*a40=1Oqt^^5jlCvXw%V-c>vX4bQvw0M`$y z`xNhAYn8hjcvD~#UEU?oOebH=2_Q+_*V?^4oh*Dpr8m(KTWC&Fvzd}A%i(ug)L%Z7 z(FvNeK3L-#VxZ>zQUA=&Slgp0Y8cJHR^>-869jCNgk;;GH*vY_8#Ys#a_qMcU6DRD z7zporZwpg)MZdL1*{vF1al^^%2Ncq;TqmVAhDfU(MI$x^(^Dtzq1k`1snpT1)YeRE zh@7@eV-wi*2E>o-sxCru_EY0zdNGEJ$AUKF9*mPrAAac6o)Y*|2OguxL{&CPYuGqW zCHZx!Y91ZCM;ulf)P1H3JJ^2O%2H;wp33I%kLCD`Ii2!tuQ0=SeK9&QFU}eK%iaxv z@aP6!uRWBNlw}JZygWUP>a)Xok8RKsPPEuG_Ue~OjwsRNu!|7pTX+F9o5Q%6&t&E5 z;LNc+-oCMw*%rx7cD4_jo1eWppOqS%jGh8yJVp^Gl&`PC#@eerj=+mCU2S{6{kuj4 zQ5hTPNvIL>c2T%(5M7gkYVDIvpjX!Wet5dqt_;ZqCHhrwj;{NbD z7R!x;o1CHG9UnIXiX*;|1J@YAnt|QUf;7;y3H?DkfKxLCfoW5pnlgV77d{QF=P2It z7UfiNiVBU|)}ECUFfmi5;%3|!yB91erAuEi*JzQh&)t`2jK!E%ydNL5scK7Tpz;u1 z5fj!CT#f270acd$`=#mgF_F#EgQv3GBV|$)#nx6<4oo@nB8;xelCH4q`Yi}}Z}!wi zqeHmqN;MJrESi%2567F}LrP{$DIgKK@lmo*O6(A5pn|syVq*$upFjfPoc_w#?8b`H zGh@7@3TX<$*Xx>*m=j50Ymh<%M5B}M@bBL(Y@191b{dbph+9@0)!kcLW1UL2|2UlAhLil! zlwGD7wH^)vzktHmwsj_yJUqcduhWIfHJgg~mV(-eKQ(KzQ6-HPZmvg@36=Y9F@!WZ zEi5f3tR_l^qk6ZnD?bRwyiQJCFs$fv<>{PGMgJPhUg6xHoF;fg3@lw0>^MCyB+^t=E0tPYw2Yjp<+}c~-+|D~a)v<##$cJ-9U$ zbEbQ4)>LN0(^}^r(FOs6n4?YIii+sOP10Z;%Cb6fDkYgqI;#mjHLZ*M$orRAfU$$& z_L8=zLDoD?{h=0ajQeBenwHepCqccT9dYTVKSzbCk*+&}+@ zfrfxKvB71n&6Vb{a3+7>c|yC(=6Nx|BuF@iA}S}Ykd%(~&F*Yrma$}L7_)?12g+@8 zd62r~lFyRjAn^Fk9(o#5b97EzY5F*iU5!Q(NGR4@=@0aoh_t3)0ZqxGrUiwIT(yY8 zjRSq60+d-mC>Sx}?^50Y?}%G0*#pI6%rw)gGgG8`=ur<6NqGmz@2FJP$@umWFi%Mg z?riM%_Apt;hoojAmEw8KuP|_xAiV7G<6n~Jot5rN*d6&eVycbzOK(%F-@?gJ+%}S- zIyN_(*#ZY6qju=Bn#*@sb(B}j7_FS+s+V#{vl}N>r8(Gz)ycCXTWD-;mH_Hfg-0Xf z9UT4}9G`RcOWX4#WrEg8DUy=s1jP&ck-(%#bqI78M*-oJ$V`Oq-4zXOi)vl9q%sXY zztxKZAA=pI)GxlyN(LmR_1u|HeWnOVT7P?g4I6T6f7)pOXhy-CMe;Wi&Xo3)knk-O z8J4X6$iQHJy=>xiaJxMovt4Q?abID7weoXYlPJv+bezVSu*F$>r21fx9Z^4`Yfml} z=^hmmr5-eijmP=+t3Bw;C`G#u1MER_sxZ|@gGv4>z|k64yr=U_1C3BxN1uH`8EHa= zyj>wa&11s#!jL}ZbwLn6q`=#M@Pup+xu)c2By-pgDgDp^pd`oe@aR5 zOC~DN@CC~^6UZ`;RQCI9r(uZO(WYp-PeQ>q7O86h266StO%IL7_LBRqXdq=X%2N`L z`%%`-^r$&#nkCE!n!pDQSOkihw`^f+bKZ4MSdupV_Gzh51m16OQ2turUZMH)1uo`p z6Cn0-8m0)KV(kZ^Nq#!QPJrT9jk|7-wLF2Dk73_6&wkA~%KJGWILxlf&-=oXeCKwPzuH_cn6(;r4cn%C z;42!I{&Ws?3U<9paCVlOahxy9DASfCd{$v)`cyp zMej7)a7DH_4OjMqMHxpS?#UXyhC4ql37s~7Ha=b>d(Af3B!hh%v)W2@d4)Jr#H|4l z4L{-NU|>%2$fNpsnF58ad|&aJ+Pi>Oko}SoYRx33E3M{fBmd6(GmuH$>>9#vvpFP; z!>>A2xG0pSqt^Fj@SVyV$;h9E3Gb7F%9xf*S_v+xbv#+Z#kJyj0nz12{zh_uxk_ja z33gq_uu`0UN6tLgJVH$twO7P>oWR(L6=U=ElGKc^r3(pNWKZv{LY#pX|j$0ns|%3 zKXBudkt1I~CDn5x1!%S{TQ9f2f_tD|dJ2oVzpP`p@laPi)4u!FK@|Jm+2)`>>|0f2 zSShHhe!9FE<6$uc?FGz@-R7d+wyTu>X8xw(O!rYcQ(+IqoGc2K=zm1dkAB1 z=8=3{t9EFjrz!qec!+-rKis}qE+caWP4MQ(_AVjLVks{d8m^K*Z3%Lk!Fh&auDXTf zSA3*7@hp(X0_xcmOi^;yYNRv+Ppj%7F$HD5yAUV*w(|>oed78PUK1K(WmlyPQeHZt zr$^txll)Sdoh>~W?x&yPBwIR{pXQTGNGRHY^f8d`xcV0`&Prm?Xo)|;HAqJ-WCMGJ z_g61ZG|0jOc{BrE$GFSo+Iy+@+P_OqIlm)&1mYjzZH_@x9Vz-#p9=xtc)gNdQ3=8T;y=Kaf@y?=P_*iAj|=qa%x4>Sx6CI`k{@+{D17=a z!qoiX9v50$HS`o=@V`(}C{~fv>*sb(_$Rj7ymtyoK4J@fa}A>s$fj_)4So# z{p;i@{^DEI-(!Oj{9wk#DJe%g0~+rcM_z^~@aLLvXzJ-HfETS4PpX1Y%{1gJ^%(xZ z34c>T-dHhhPL(fMl^|Sn$+*ZGr$vy+1)0`BOj*qufAQ$|g-jZXq5X9%q1BD@6zhM7i2eF=l7bOlB8C|1z_88+l*N}kM{Y|gRBGUSZ-?1#vxRspg)&eORVkLlc3z3rcyf4{+)z6j9|RZd6Y{2 zpc}xE&~jY+neI=lB(kY0N_d&uJZIyoyTFNvn_7SG5y(E z-O@mciRddHJ(TdSl|!-J(J!iulkPv%IS53ll+j@_iOT7uWkT#hA2G48;v6m-bEc*E zPfV1$WHdm;#W@R8r7xpsPe$M}TdEIJI4BN@s@^HcffcnHLQ}Ib{K$HD2=7uSP~jIhSzCmi;Q+Iw;|@?lP6@WtE8} zSd*{W!cs{ap9w;;2I&ed@RKjze3RUW?ZTTxJSCXfT(~ka`9ia^XEA>f2-Pr$#mLLe zE)GnA;L-x$fZD9=N^U}mXJhgwDM)SItW9{Ubp$EH0l%mq3~sgOsaM-v`D|Z*qofB! z3Z8U94J~V&zlrMJs{I_2Mh`t3J5wCe5@*ux?SUD^V7^5NOSGAY?-6(~6&mTAWgm;* zAn^)n0qtJcd91KAoQgrSYTBB7$} z;$>tuWWPS^h~}`dvxXoBPQ66^)geH)jV>=@)w?!#;NvTplkwd*SF%AUX6>pEP=2gn znxFF2DHno#eN~R3O+wH3a02dPxhPhzLx+nRy`@>^fo=z^T%2|o)~cxVyIkZjKYR0v zv$Q@%E-sAjHwRt=0^{yxDPVp|%v5qP6N_oIAo)v+K$}H@dX)*#mKvae#f)CtPKaxK zoSHW`-d9JkWx?l9us1O;Fx1e{;In;T#gv4wR8+KA1T}@|&C?tov9#1JrZm+{HMP{~ z@9M(2_ltuV72#37l6`uCC8qQY8%<2GLt41+i3t`%GEy#b6ykr{Z%@%rIm$Q6cfD|} zOW9Jk_J;pPa!=uPcuDL@c6Dno+p}-;MxRaZ_H;0cNOc`llr(`>?$2Rr%Iy3(IJP}O zIBG9o_JY!da_VSDCE>C*o==tz#4WgGNx$bbKdo5$v9fahC5+{zvW!e`5RBmA+RhHr zi`!hE8=#&H=4(bqMiG&}Kc-H)vcHo(^n4Ouhc8EZL6wLSH`7|RY-1W}qNxz=qlW+% zvfK==L4{6(n(Ay#P$0z75eu+B8DXI zgMKUHNrU1brz~zJaiZhj~PxF595Y*3&#nx{4m*E3%iph5qWQ!#iE*u&3$qePf}f6>d~ z%u)Ny2p0>%=2b--Tz)WE<~ZK=X|^yOLRLgn$XZk>awskv?Vlur``{0R+a43D;e znt>O~>OI@nILDQIN1pYwH%Z94r=@jG_!73o861!VId_|{1uw0MErdih-nRm-(i>x= zC1y)?Bt~_&%}hQu_Y9p>X|?j%GRLtxT`nEyjMPODH7svmKcF)&VJ@PK#IP$685s$h zET7nBU0eVUWL|z_qHPmMmPkn(a-KpY8o@Ks01`9dpnY;bOwRaAz zkRay$F!TNYk@d}CnRZ>@jk4XO$u-%w&B>T-+fBA@T^W;IlWp6&vR&WR-1qZ5?{R$l zuR4!i>)iWXd-=C^rk8j3&Tjwbat!Nr=I(G{naifPOaGi?RB?t9V_MbGo-ELqkk>qy zt~f^R469~u{5O59MZ_xq^^P(2Uh~=Ux7Dv;H%r?YlpQw-0M0T_*RG+m?=`dj673Gx z7uFq+v4HZ{7b~?|QZTsBiVVJf1o-_qbOr+5m)Ip`6F1y_o*LE8f`RxLwR3~!o^mW7 zz@!Cm-;SL?mwL^#fcp57v(l41NDsBa!4y=64iL4@GzRDCgs0UK$mG-AOig_;_tcMF zZyg3yBae@nu{v*81*<$FBdeV*^dg9 zN3p`2PWs~CkzeBWnubj_&msM&tzNU=k*CegE-&{j>j#4mAqkPrXe#W9yHmCiBzy<0 zYbw5NZ9_UFLCPr!+VmO87vl&3U zb!e77>}Yc{o3o|aANh3St^&!2&tObKW)rg7Cwr%G{g_rhkAxS`FCWOX!5{lSuR-F7 zX6$>^Tb2s!rn#K8J^eB!K(fA*twYpQuc40Rh-%&%s52&e$@-F^X533?%ZZ+zaBU=V ztcfUaqX4^v=d!&xNNN44qe?>jb;5lA@zDYb!$!2S<9ceGx9@C-`fTiaAgs+v1vpW(V1#*9h%F*<0Z%V2_wqMsUFc_CoO{8%Wl-<(Qv7J;RN4r6J%Ov z|JtGdSEA63{)`PIf1ZfM7M7*z!(VUf>E+|_h|j|OZFVl3RGl9u5Q#78oS`cK>V(3@ zgNsNj+mLcFb)YIo4BBg!gQJTR;tN|gc$9)`&Zbw9kv2MpIW3l1#|x0I*aYS@iq_-);Hzgwe-UiRwSRM5t% zoiZ;@4k~uW0uYgO5nl5pJJTGRv2$Z;+XuaSv zQm!&@{d1I&=oXV}p+NYJi_4;7sPUq3W$I8_Hr3=h0-?3ePH#7kKdcq^KORn%l7xm} z9_^4jn`pVlDB1u$_Xx0TDordvw38=h64|2maE~XYH`FQXAys2L6K4|>HhS2wY$JQ8 zsvJC>zA5vL4&A;9I0?!G53?Hiv<|q7dy1Wf`o;cw`4ml<{lk_dX-B$mVA*)Ql)Io- zGO-Rybuj^gvM_lF{%9EaYf-^6@ey}3H3w5|rQ#0)zo1>Ls~?Cpvg6}23nWPvGy%WX zNY-?>UZQ(oIn+RaTykDcBFT0h+)w)5Q+M>y?M2~;jsiKtNgU{nP?i0@o6jK~%K|vs9j?#0fQN$>e zD`A#svjtGnwHhf&5;E#MtkB4ygF18C0$3hhOftXFnDS+oSC8TK{@3AZJgH3)?f_hF z=1`q{*`ueP%};Nk>xkqTwkh3e&l)crV`NlY)*dF}G~l{Tq7WG~APteCjWt8_E@UbP zadsgaPfeMqp}+AG870rp_tV(D4m85zX5whXB2P2L2cIdB1`*x&XkaAQ%8wtlI^j7A z!u^i@=}<+be7Th~S1FsuZww{La`AK}Jf2#wW^@V+klypj3J>DIfB3ecH2nuvtf&3# zN~JR;_>F!;T8r0N^P0$%vGZNz1s5f674Ug__@;v7krpIqfrnQ@w>?I#Bd1jd8(?s~ zRFO_OgHZu+4B$bT1de#(w<^s^*H&^S^38s@H2z;EP!o0VANHx-SiyjC(bELgiJr>Q zyq?`3Yfd9eXr5=P4vmCgFx&=p(7BWx-fpQMtK(_vmAF^xAh;75XufT2_HyCjiaGI?!&%RF$`D6uSuV3MB#~R2`4`MlUZf7#GosZ71Ji5UR1ahe#GDHOBoB zYrIgPsVDyv3wRj`j`Upj+8N~Sx9*Ye=lS#`k&2Qyr#zz;cb<(I*_zVnj%<4d6~&Vf zn}rGVcDf4;)`Tf-XEd^cT%k{T9YDIvg#wEw4drC7TV25=ac2$Qu@d4@Y@z*uV@eX^ zV)DBm8LbUF{y3;#xfy{6OSS~#?X+54=aj~F_+w|ys$?5_;GRV0@5iPn>eEhGC}=7y z(PQE4uC)=v5itj6-@Wf3vrG{m+XNP#S?J;LuHNfz*UQz!sXIo;OWxhN^rKI8UA;gM z5uYbY`a1khFCe?cLBo5}O&O%_~fp+f_Jp#|l<87lP8^iy4g=sc2 zwP>45H*gT}LID9T8=1Ax%XY)hm!8e+_)~6=(mA=qWaky|VRZFV43^J&?j zC5iIQe=pKWxlubXl3Nqh`=reNfd=rQ2nC>TL(XF+;q@t^Q(j;IXFs5wgppl26Z;wc zMi>TU<7QWhjPj*u4eq-s^V85CSCnJ_i)VWwQOQ(X;!}BSq>A-L zZ}r35$SM{dFzw!l+crJp(}yC?&T+r-esCUfcPRj8vJ;Ng2}||~n1bne{U~m8xn7u% z)dK1_?4QC?qLsXL{c29V5ZqGw)n!CP7w5P7dEQBjnqp|jV2UKD3DvEP>Ta)+z6%{%6_S z%JdE@CTSMxT_d?6P0B|h)1Z(%PK!7#f5OWSrzGGUmAatbK!@-PHbS&;X=oR8=$tQFr z$EePtlAm&Bk?N1|2`WOdw2U7+GSuv71k;MW)6-LB+kWtexcs8(UJI-IOry*kav;|) z&p&-t@YxO9<{n8g{C zQjtM7g#}!rvbVj!;fB|0Qv@QEVk~0oMaOWz@je?A-0Sfn%;teZHceQMT#H>LUU&gl}ni+R**auT^UI#e7ZSEPRP6!*^E+M zK!+=CyjU096)vtAL6 z8p;bL*Ur*o@d|7MzTo*3L`Q8zbHzlYePbGxAOeQ~%#V9v01AJtk!jv6*54#EDa+li zTH5y;oV+^6!8x&lmH>8M#fgut+Lte(T{NY4o%lneu4ZE^LR zV*4?%2P4EE^~QOpke6%Q{kn4F;2?g7>O-+m?cr5yZc5721>*{8X zi)U!S5hCTs>_v(GjfozR_dHS5t{r*Z4l6C)XT{5~VwmxS!9P`nZTjT=NVCR`{viV7 zHh=$PaqQX=^Wg8djQ3%NY^o6(E#vwFxKo?f>W`q4{bxZX2OA}!Np5AA%_sCm+(;#6 z1j$468Atwp*Bui(ar8^t>pi%w71_f_)Rv|^PDC)cLXegQFF^9kL#=p9j^W@ZGZ5U? z6R?IvyaYuSvIVYTrLQMIp4X2Zy3;~etyx(X6IwXUbo^@VV(0Gc(qS--eLSreb@pqi zl_@hruws2rGIu-AaS54hqpZ6qwY71f%|}$@$`I1eeAD70He%pn1O3wETxL>U-Qk@` zRkM4Al-0F^svWC}!#K!^@sBd-gzu~awvjj6S*tGv{NxxXMqTyWLNu7lMx?zsqQyQ8 zfjY*i?=F^W6bSSL4mGm$qM#hP+y{Ox&3alWFh*$2nQryA;?=ZpQe5lkw8IC6Z*a;X z&>hMn!vBh~uivdwtI4DZ-~`!-Qi57d>h!MNiLc-EKcNHM<{-$RuMeNuD&=!LM=q z+rZW*@Mm-Ph*L!QSUrYN%~-ZWVvz5hbC)5?VJB|Zm5`l00u6yx2b_yahm7TJYM#g& z7XZG+bhN$H(-wb)nWu;6!9L6`Su|CvZk@AVwJrN_BUFru^ECyXbpR9RU283`!|Av& zRfKbjy^Giv?eFyi&h;_FK z%6loi542=h+l@}EoS}^NF<>2`e;`FisXs?(9zwpTL< zi5-Ft4d?i2pBtiHs&?!9s40ud>M3K|G38RGF*_9p$^my#@s<`U$~KDl>|qm};}4Hh zIxnV2*6g+D@C|ZLd=zlOyi4&<5nTk`Rwt)z!>egK#)XE1L3Rh2$zQh$euJe}-XT~E zdVw6VoJ_oH_9a*QD3(2d{pGg4Kqbs-!NNhQ#{Fckj#KIxhv{0ZlJYS?r;;^=Yj~`2 zre(>gdqCChOAMEsjhdw zl9;GFcX_M+#^kKX?T1-w1e{y4KBa?co-|WXswJcx-k7@p;jNM@3ohfl*ALodzm&ghB{x`QAf-M5+fX5$_z4Bt;n1ZD!QQI zlHi8Y8R}WL)7Rjpd@2rf-0}gE2b)-aMo|_bup8kJOq|fDukq_P5H{pF9LzTMq@d5K zuFIvj`3ouEsLc}@HJ(v@wzKKs7>%<~tVJvK6{q340Y!#4iWSJ^eMO@{(#HDev6`in zILp*An!f~jb-&b{K6MDK&;j?sEG081BvY4t-w>ObnPAo*IKL5p=QzAC-4n4DW|$t- zvRU?hhA6hBD7d%xj&gFq!LKdmJqtAxbHtMsdF4(b-p=-PMb#gYwIuUwA+a&qCb^F< z6FVO7s=wVeZc!{gors&L!_^hWNx#0V7|U*c0l=tcUk9ho+e>FDUhf&_f)}|YKFabA z>&eVCZn+jxz&h(*am|0&7JD?=p4|jw(ZD3N_r$18bKx3G+oiKPdQD2Ax?5UeKRibJALGG~6+27J|B|hwF4C&A;WGL#HT1R-20-(pV;>)Yw zSK>|cB$Vl{^_?r-m?u&lo!H+maP^yRHs1to@EeLl1dnVhn3<#?POS@6quY|E{u?@Y<2wjyu4XTUai9g=!r8!A@sKUgS#?%l?RV0MX$>keZdb zj0i3W4)(`cBaj$(*^#AYWf>8S zhy0~re6wv>*^9G(-^2DB!u~GhG14&t5Um#z2R1@l|M^`v&IHG!EGK&1y{#7&|uzV zu-LqfoCghCE-8*rA>;MJj4qovXTEK7Tz)wFDD(EHnFWLqg9O28**sh7cQ)O#job0|zw#ae09L~})n&i|iSK&qj5l-|CoSNj~b$zI*l zRiWdLCL^epnAnDXOI=+V)#}=AAFpNWiH0o1HQ3-|?k80haZHhI0wS&YXBS2@brlU@ ziYvbCVBoGQ+#S>U$Z$?Q-3K4Di@n+~DU zhx@ZN9X6qUX^qw3ON73SXiw6-1l3B;jUhTcI_@knY`{ikl^v9FHrGIY!!!$sn}_cFIjAm)8(Ro5uDQYLRzs zXqU!7pS0MiDq)LrNZ$^~&VJ_@xamZZvseb<9?hvbf)Vt1c2?1Kp9N`1&4q@Y&uwFh z?GGIkLVqM1n;-knlv!WwOBJ!4=_ZdXj=21RPE{!Wqf2iZ_rcQeLyWA4EzkY!!{XZN zBjRUpl+Le>&g~=_+&xd@bxR#?_xGCX7mnWC3SY`zKWQc6HzQf!(EM3h9j`7^gS)wL zWq%Nsb!BhT^z>9PeFP8e(XAhE0NwO8g9nq;+pmR=;`10eNDgl&&+rkkR zZ(>Q+^;sU*!GTkK`Tv8ad%uSJA>~)L&`N@>MMy55Czvr8+AO_*2iFf z>qoiBH?s(g7;mcDypE9Z%#a>VpLE)wvpZQ>Y={N*kR*Vpgc9L!AWbluSswlVd^dd& zE03M)(qSlAud|y__a~^H01S)?ClthCcSuC3| zeq=x6D!3g&vX4sH{xtXMWqCdK>ynClpIuwUms1#oM{DTmXfF$EqFM0Wv-!{zms?D2LzV3MdUzQl>**d3iW(@Pi&@~OOWfldK` z-R(@Q0SQc%yu(l-X-eDx~IhpxPdmDqvLg-m~T;m)Z&qnP%z9qRpj?(=EaM{ ztuKW91Ddcp9JSxeEDfKrM3QoYZy#HOQ6pybUhq8d;G~6TUchjl{yvy>(C6;2oRvItg zx3Pi58t&u9e7ge->Dc@QX;AEqMX}w#5q+mun*(`HZwoc;`-(AqwhW|>e*l@-r&mgh ztk(Mhn|44=9a3@d5VbHd0MuK0A}^vIc-Ln+Sr_N(_~j!xFRCRdhyreEOCWDeQY=z# zvCLGtr%LVMm@+?CoJUcto07x%QY|WDZz>3uooa%%nw{_P3^O`tJwVT<_nLZW&;OIG z`E@iKK{F&3tNzYG{Y}kk&i@=amzEbbqS6DRf7*{{*$NX2d&=~`hGiWoGu7=><$Rh{ zrlGNvn3sptfnyGKq;K}CtG#*HxQ@6;VC)u=*swtp^-5jeuSb%Ome+k+gnkZdyP^r; z_XgCM_^rGQ);kk@?aVvn8oAmJVA*cm&G*AwHv0CSkEkDc$^7OWCi<*fgW_#Dj6XWjFnj;#V(&CQ=OUX2sGT_T$FbT-=p-k7%Th%({dYDmxs zH(=Co7JsAm)~b^)f%xL2jN2=IeV>gCxDZM~d5gDJ+AgAKLZ;#eR8M<1QmgX?w4lI# z{D}|WKs3MC@5b%4eX~>5$5_t!bo|QcMN!VidAGRtR*<_Ek1=}#2h;HLMiLk1uI zw9q-@nZBOOq+kE=;yo7ZV0!s3ag@?P&-H`j$uUb71OF=H>?LKpc0BOjpS1V+lzuc$ zf|F(ypCo=P*3I>dOZ4%@8`yX~KWr^L1=w3BtSa0WUt@o9NC#c-%ZPFbJfC`S@Afp7 zzRJJCcy;4eso(SVG-8**nU8Yo1#|@MBKtJ=*45ID4@gnQXf#7go^Q#F+}+0S$Yz|~ zMXTr)H}HoUORJ-2<}mHos)f9go)#2kh2R{2CvGSWg2P22BXLu|sOL#R9CJ zdFx(LrVf*M`xyA%rnAu@v3l*B0*snE)Ib zu~#Imcu^tuhJg}YA+6}3A_kMAkpjt`z(8J>86=!%jaRbpCph|f+?9Fy@5cqtm=tH# z+#l#`L`@VGWJhIp7AG(NRe}Nn5cH7rjEw zv18Bo5$>z(s(BN zAs+p@=6&WsIH&I{Y^lsKUv6h~sKIV4Z9J+C`~gqR+R^+x<2i`F+(KnLF{n>wjl@jrqnwktau~8dCP6X{fL|Kt-kUf;HL6=ewLdPYv8h zuLWcZa&7Xfy=pXw#hN<{JG#UX*St}#!SvT!8(05oOc-`26&9#fe*KLa7heeAx?Gz8;NP7b5qo_9o8-l94#+mN^0gbKPVG4 z(}tWJmlj9OKT)^G&fF|N1-+ZV`k4JUE3N37PUZy{ zLkO_LcsX*ldAjb)hoVpKHogJ$&E3@*f7e_jb-dqZJXP0pppZ7?2=Q|oK~j02_sKV` zG&2yutU}QIct^!?*PrIeh&AP9nN++L)=ee|O47o>UIu#r9@1NEpu46wAb=xjmtN?` zT@tQ^gktGe$N1v|&bnjm^HPHynk7X4+V%2W&4Go~<4uCc=eBmD6T7u(!S8?d!I;g> z4e^ga-8Z$j24@Rwc%*ZNx<(OV%EB2ixZ$dx2HLNBJ%n9U?M_79E5~Kk%4G%0v5Kn| zW3X`HHBWB!trd5e1&AWGja@&w7c7hP7e)~Wi$@1)<_BC4U!CX3KaE`I$f?#oKL2q9v@SGU! z7YwW@F!D-ELC1e>TdvC;-jiNlk`IC-p?Me%^G0^f;7Oi3Jgz$AEW8D5Cny}zv(jpZ zR;a}CIMl&VpZqY|9_!uYa)7noA{8(L{AO9P=Q&qx8Bxa6C9aVA9+o|ZTycr z!-&ZNS)|qXq#4j9P^k>Hm74p~S?VkQu6W0|WF^d|YXf$C zk+OOrtVMQB(vDaS%~53b6>9c)xQ=VC?vhb+tu0E%#|Te`pS}tSk5J5>0C7sDh1RoO z7QVy@e)rklVd&a7`8icYk;3}v8sek|Bqg=4wUi9*DCOM@OqALi57xfJL2_?&t+*<# zS5)W4ld_l6e(8_2)GxRGDR#mfF!LeY!B=c|tv>jHPetPld%jKKQ=H}==j7c4!_2%j z<0V8#mEk%X;9{UkN1B3>hOiD#TgGcrQCo&arGv{^WWqW>DeZ>`iLRG2e1al1U{8cu&3c`vp-SikyKIt8-#1E6dO2v!$%36I_E5YPisgP^Di$r@D!m z^yj2_@!(oYo#b&Mv@JTfjY#TE+9l#Ib-18j10VA~G9d!>Y!D-cjLFwD0Kddwnja=6 zZ?2GJ#su@d@$y8VY0@J=b%OkPCxi%iap2!jd$P2Dw!Dyfe&9_5LLn8i<qn4=Gff>j&O|jeFFngSu#bCP$>Mt#O4bWApc5AfXkZ0{s2b@ zE~+rG*f_S0@jVi%!Tw0H)p}LON}sjM{id6_^ig`6l|-$zfatd3P%>-KVvB2Zb7ddEOqWjqAsI(*8Eb++O{(GVcZCg;(UT+nV6xf%q>Wn+pM4y z;qsFX+b#u4vy|CU^;Kuyzr@0=BcwR>XmawtJ7%es00PV>1l*S0{)c+6G0rH@m(G+Q z)p+dg1F1KWQ`Gu1&eP6gZ2d5f1O~4?h^C==^Ij{g>rpBk#PhU2{8tbA!ZL@K(8kH$ z*bd9ubMk*y@N8wfB!pObpTSACYtT*iPmM2o9$+Il73o^ha7EdPqp?+SAq{^Vfuzuu7BgG=!#(= zZDJ7Pc8C*LxKp}gC7c@{|DEURl@+WOrm3c_!L= zLPxfo`(QZa*EYJB*ML}1r6p^N^^wcrO6ZBf_#(}^#WC;jLOi4t_o_&AC`5&_W?ImY z6Y~#qYn`gQ!rt`^qDSMJsn&jJdjv!4qBGUwXUYuu zrL1XzS&VS{JSmv^^Y=oe&I%E8a8_C;(PM#|g@U+i>xf6L^+>sys*xGDKz)pEKoqOL znyG-LBKN9UR@0CMIIu}nUWL=~P%%gNv>73Z6r>;Uymg4{_(u_b{23mh(CLgHGadNB z1D2;uIYE=6MnS$Lcl2G}1%I_;cF>BhxK?!7?o5ZwqB$xW)d)#mLwTJj9o?Vnjr#0E z)NZwJc?l&yCXi(0LBU$=?Xs=!=2@|WK3&!}wKV1R(&Cj;v7G0nZl?SjBi&glZOt8z z%oRd8bT$oFXzNsQsbVjBvEJYdqOMG8w3^W_;nuzpRBh=RER9057WD>-Yd+Ut0NquT zr`A|TU{7hcWQTaFn?sZIETse3kMHt!<~YkjhV^2^v845u%LP`G!eQv*C?G*(GN=Ek zEo=zF<~qF830^VDT&bNX`m1_WeU9k^WkTqP<}URoIqaEdxkb%9JG?)onKh4IZ{$l8 zdX)R^{Xa#vdjCPtXESR9ri?btycfv*qi(CP=OEG&Y!Y#cbw&8)+&WS z1w4CNO7Ec<7E_I8jMiW(;_bnsZdU>XHSM$of3nslv1C-?gA26CvNax@UU!6$sr#fh zp)$1NUo`5W{RFu#uK?HFGUCUfB$k?x=Ubbt+HbGry8#a#0*&E&%L`+XRBn*s-w1wn zDZU0=Prx1yi;I+3m!+)U9;w>$a)Ef~w zg^s4|cfd1KSuk0n$ca+9LvtGA zmy72xZQo#T#}n2=q*&~EHI`7~Lks@Yrnz&IdIF?gs%_CX(pq(SOTmK=*(}WV*Y`t{ zeo8pYb0?G*yp%qK- z)^*a-s21eEZasHYCzw|%T_!b6h8+a_G4(aigC2ms{qqV4j1~=1s7bC@Is;GGGrLPy z-tdkdlWA2NNG_1Rv63@&!Y-eCc@Uq62`*GPfV-k-j%C~2^2k(Ojt`#dc~3H$;Bq>_ zA|R-w=)_mh(zD5RfGT|W;C|K_vK)kMWL@z7{pR zQSVG#cb26qFt&98H~|I^GC!?ii?cui*-RH*j z&n#&YE9}Cj}3IXu~XB})UM#;PQ)Ll6bKwn82*jhnct z985~;2_{ntUJlC`XxNcNXi=)#4WjI(b2(UvZTa3a^8>D~uB(l<+ZWsYYHDhMfq|fX zP&!`yHid*U703Z`WBg z!gir(rVvlPh&Mzr>)JrZI0wnqR5waJE}^&6b?Qi&ohZ|QUh+ne7s^pF1(v;wTm&`K zM1bcL{oh!qQA!PG1etipm20mWRT?{$o!rJU>-_vL{ItGf7HQk(FT-x-PUeKrTBI8k zkG)H^#f-rf>2w2)3KuDc5NgFmz^-aV14DJcVkOT^2qq^n;H<8*L zM;3a3)KMiPM{4S?gXHQ3f3^X}wns`b(Bk<59+CY%?bCsN%(kL)XjJDw(+Z|*D)@e- z7Fb|Nd*6xmK8Yj%6K4tuC3cuMK~L9&k4NNx=#5%b2vN}SBF|?g#{U~b2F(Y{hLsxJ zfUGLuWobpi`4YnKOS~Ix=np?gBeoY8e)K@_O8}{uAa{q3UoTbfBiK+B4I4dwYzLh# zX(dC0Pst_&JgAmNej_ZF*wM(3BG zl)pDl`E&G?Pj7q&r~?S$2ZK?KMM59)15w-W0UL)zy`RD2@wII5Drkb26%ZTLT?}p7 z&w$7cD)+y?(rklX_6CpkJ8w2V@3pA>rQ_r@*2j*{hp6xBtBJdUqZ>?}C$rB<`LJ8p z-!7h10!-vT&Cq~0Bh~~ItF`i>XH(7KPKja(*7ho1l}IFVLnoh0$rk2)QD~t405)n^ zEp8orEd#;T3E2Gd7BPc&p!&;dsh<3us^JDq*B+W#r6Gdzw4S`|eCU=plK=PycGeaX z87TSe<*sZ|TOZC|`;-~CrdQ0M&;B91I(f=Ho-Xv2QpQ}4C+|bw#?KpLmeKE0;R(F^ z7{p)b)f*={hvtK>WT@lddr%6$?7p2uyO(I37Pq?+=w3(PuKa0LWPC`89lTCoy)@M7 zlYcN4*&+Mh7R*LXw=UbK z0bpPyKbr}DPLeRxMD=DHSE(L2L~=!njj5Onvw!2(_?Ge=_GSpM7oWINh;8@cg#xMw z@rhb(smXPAD&v`2gZo-KI$u^Gp4%@kq`;8LeRgVlvl zU}5JlTn3QtvVxcn)$%Hacvi)!G1k3_Za8tVpvQAt?}1e%Oyl9uMfk`S$I!?XhHxr4 zlPC^b`Q8_ARXZAo&?pU~J?=V|I1sgZMHM|X?8<-Ay=PQ*GAxR{7rBfkxa;N@*sRn& zP3S?xWG*&G9L!~56?g7UYge6gH?&nc^-uO{sTydM+J#MANL zEyYJ@<(w8!M7rQ_6uNb%;~QESy9#mB(2OqrxIgYCE(IzpQ501yLDBc~Dt8o$xx?O_ z@4Kd~hq7y;;u>RH7#(4pS~+I289XQhip{tAka@kB2Pv0z*{yt? zZG3@s`D2dtlpd6v!{p5!>h}c^w>Bk@kwzL-!a3Ofg!W^FZ`BTvHRiPje@NA5z`lM4 zrGGHG&6wiQzJ=yZf2nHMJ2g?(-(^RpMPn#1b!0VG_(#9>7K8K~MQKR+y=8Lpxv(`J z{qm?$evtf=o9>XK-f@}7dAA_~PvLS4TwH2gKdFVl=f(s4Y>spIT^+RyZ$q`UruHsW zMdiX*SY%4KVI#+@nOx|vn1BEMzoj z+9;VEbeVTiNrjQ}UZq~X*%HpaASov=>y*|tv5|yuq$wq5_F7m;gAUbKVsORHkWD5_ z@smLdW{}Rxzm4DGMK(N#3LD0NQ}rIW4@U&GosP*smNINEVmTn zovcpjGXM|Xl5Ayo-xwhRa0ov!ZcGVR+TJ0JmW_nc8fROT~P=#(xYR_5; zsc~t-hxq`n_Flg!N1S4a^2CZRp^`$sVAq$F3{EtjCji}agh3AjwWVZP_BSKHb6cNe zj>ajgWyGgwFtgx#=9&~-f+!)=k46n3+gWK&gD@B)Aaa1(%&Te{`2#_@NX=;kxkt4x z6WsTmrr%4H%=OUrIx!=&u3j3UHBv<^aTGOGb?4Hkx+_T7O(v{+=v=Ur1H=IjFKU(` z4g9A+ivLFv2`7?}z=z4bq1<~@do^K{+D88@;r$yP!uIx}Zzk3srsF4F0-U@t%C}O2 zRilL$3e+Ve<=+7E33c}u!7GiqP=O-~{UjjSX97>%dyYOuEJ#pJ@Bj;-Sp*kqS@ri# z_-33mIcNku^@hiC8i`5u#oHJ5m497>~f+OT&RfgDIwDa?) zj|pE>aZtA}ilAy-fg@l8D+!XJ1vM5B(DcXp)kPK*FsE1>LZDlxd&5I^cr0fyW~NIi z)~+3m^3CcIP@g%)1il=NIXdU)NHM8C#d1d5iqU5rK%ZLnQx%ip3=f%`WUDW8iR%40 zU6`+CA+-s|vq`qxZA$^B`vrtcTt$!~tzw?tH&^q*M3 z3>0~Is|#G$~{z!O)d~BV*ENw4)q(F?TVk7611vQ!C1* zO11UYb7C_uzDc>X+0>pO&M<#Q@ zC%%EwSk+a?U!NA<>)n#8M>wD|*L0oMOY~5FTd=ovj3At(-7TaC#|7V_QbVZm);e9i zcI}86!HCOEvAm=pk@Z*x#UHOv*iW0;Yr2$M)1+~T0LK~Xtcq5}z?elUI}!uRHy+Nq z#&pc?mUUcA1OGVJ`Fsy0R4iDXudY&Y6I2x$hQ2g1t)s1T(U+}XW#lgsv}$BWB0)M; zx5PH}8%Z@x|8ej2aXQ#5cXmcO`TNiMeNfWXCy>A84$02B>AYDmv-YKgRd{&U+-dTV zPhUmkdSk^#0QxiRmFJQJ-0*DugE}e);Ta%bf*I5fR+`-g?Z>`T#LjvFP_v}OanfvG z`8;xLu6kWLnOpq8SxyXMeuHl5EU9Ok&RDH6M6Y?5=Slr(n&R(~3am0USCeq-O%*AS zhE0~me-j1zae7}zlVVcUZ)4nvl_MGgLa;QctpM=WpId!BScaqh>^sgUT~HnC6q9(+ z)ORYLY)pM~Mo%y9gcbCA9=POrK-U6L+O6X1#19g26j0%QJhv?s+VpgIQzmQa1Yw)U z@&+g~nmK-0!~iLq0=P0&qe|Ii)c)hDdzS=A&1YHw9uB4IAHV^sY9?1(l+#}P-&D5z7nwh}2OkX2(+q?2-4a052eJ7M8Dtk(OqiXek15>ibl> zaLp7_X-F_8u^SR_h<`25KM*Er<5PrS6MUv2yR78$q28V3?bacr{|Dn7&(Gp3C_zsi zx#cMdN8FPp z(Epg%G?k8tvg6gl6MkMZ6%hk;^{p{7SdrHAGY*SJkP>2{tG%g!rkq@Kf-tD4;YY=J z^&*ZJUK9vEJ~+NB-y5xjC_%%wTB12vjv>*rfmj+6AV2@G6`D0wOcZDYFMODOtqKCI zQ*u&D%XT0Yf3sp;&UHAwD*Oy)rnL)ATPNn_#qz<2Lja8r^vZ69b|ekjKZp9IO>XsH zusSF6+uY?jC=by=xcY>cL<@tJcqO^*&I;kfGWX5@{0GRopE*T7V0`6yq1t`RDj+!f zjU+(Qs_hTzFjAGO{dB;M(dQukX)9^Y$e4oZ%ojWGE^b&!7qoJVh`!fLvg4cT$JAhWG>h>6cs;7-ODs^O+tTUP= z4TRcOeyLes+rQEd`OIaj%by1-Kn9!P0)mMTjGHeu6BVNp^=q?NMcq?S2L+*HnXoLLUr$>*Y1}bRECbBWl6Y z63Thh=NAacI0a)@-D`0oP?2dBw+BlK`e4$_>S~(Wb=|wX=0%vYrDV_B+GC%xc(~%Q-sO&`G7LB1RbN{Rt0ilLV%#a&Fwkh~2v;jO_@xMqS<~f6*2T`}(ZBO&4g34Ik%Eg~`P#`MpF)is zBGyD7F0C=F0PUPLU+bXnX|xje_P6jJ#OWR$C3${=l6Kz6i`){J4oSWu1t~XsG@xEe ze}~*ta_q04v78A56_%3&Oo65EK?%_CaZ`sqM1&uNgc|iU`1#+1SOfqt5Ett`!$=R1 z1^n*_no;y_d^6M2o$=)PZ{q+Tw|~M0@Bi%v@4t`v+Ej4-1nEKj4gli11piV4lM|!> zhY*ye3U8KWO!?2XQ+#m$=d2?99|=Gi*_k6o@fraBZ$a8SiTE6HP)CBznCLA~nNG|& zAMAhSKo|v#6G500fBcq?iQNBOV;}WPke^8Q9rRS}|2%c;rDsD0Rd}d>{U1SCb?8rQ zp`eM{|5uP04c=pXP5nOtM-tC3&jA%y+U@^t*!ybZ&q7Uj`~)t{bII{T$6#q>~B^?~Tr z_H!|>b`P%sovKker>SYpzn#_iGLWI~2WjyXKrIfI9Z0_hTjnxo5F^Lf=}YK=%9x(3 zyjF!tNDi@df2-Hk2>*l100rJYTC()#dO8E8xIB9vWAs9g{JOf_Q2r3oCiM?Xu{InC z{ktJd;xJ({YFKAQ+sc>p-$OeI=63qsn0$#Cx25y?M%C0YL9mv;BQ=0S84#&jyge7i zut6Tz-UPud<}3C(y~0#XW@o>4goXLu)ct*o<{3`}b6An!6Hy0tSt{jk6Eo3`etVa4 ze1GOAnTh|I1(qtRGXC$hLog`9j&DMY(_3zgK7L-6OBV3|Qk~$sMl$#0=&JyQHgRCp zMqmgBkkuz8DPjz99Adcg*Myebhny|9W-&Mb^{PGSNo-j{x{AhyX^AiA+1@ ze|egZyAA{vF(cHQ5&s|a^I=K+dyY;2caHh6lzKPhJZ8c@!2QJkB@Q+thwCRejS9l| zycdMNk0JmIc#sJ9{}??!M+p{QTKZq+0s~_f8HP>ZjPgZjJEVHc3cS}aHdW4=<-O(&G~)f1K)cI~L=PnGAc)uqUNF0w zMg!o)Md}C2ye>_TMJt8X>QnYp!J@^imFlxZnMs(u%GM_PJ9yAm9{4V6 zHWH3+I4i}Vgg3p4vvt~<)#V=cVm=2Z=k0+QWT|q8wv$#E4=h9GI z8!8wxJlOspSzj5}MzgS8g_cq%#l5(@6?b zIq!L{>&ri~+1X)sc4qdrnfA3{mi)vj)b*{MfKxZjjNoO(mn6oB`gal8p@g|FU{7 zlN-ouEe2i5jf+es%O^xovbARgdF%*FE559A^dj=Nw&#~be^X+@IBKn$;2~q8RK6ySwjwDeFFda%gvgx7nVQUY|0{LdNdf)dn zkw1D|<8XU4hpkPW`6`VPB9V(XWyr`idvn{Hz=vI=#e$(j-ZQkAsE~y^tdllT9o@t0 zTW?>H$UxBjT2U_khOMeU0L#PRxtm*%i4)_h1u8C|Y-XHyW}Lv$5ogGsfdJGqYcvc! zX6St!ZDvum*BFDZ`zLfqC7toK9>yj#w~~_1%%90rt>$R3{q`u^ zu7t-;-n~~L7!$&eH&B*lweAp7^JQa4;f`kUCFGL`5-(Rtc=0{o)?WX@@)xEW@WE&E zk=@$7E;koB&?facyP|FPkff-$JVXx|_};FAGbuL*Vq?pWuJ;un{RGX26kCJB<9@?j z4gh2_O`1Ag%%%$3Jq<3ekTWqi{Ld@<(p*@Yt;y@C(PSz5u0zvM zFgmf5*Y~u)W0-)k$Y0VXO=5~iaWQFL4gH(a1y|{pRiyDM!@9!?I_tCTo)2rcGM0|^ z+I~Cu`gJ%((A2>diuaj(rZq#_23f~cmL-lju1>y~ z@Sp>tv!Uu?`8F`#Vw>*`SXh>kjZ^jf{x24=YZ5(DV4Y6xxUOIG`Dp?~?%|q+KParaF?p{IK_R`4Bl^ zoc;5Ufs7Sed7KmLzW&5=_l$H%*2zJfM3)s=qoD(QAV5VsW#1WcF;$NBaa^r)v?X=y zJ=7xI4KZV}f851t3v&hg;%t*dS!DY=S$B=OUzYt|V0bM*X-R?%_6CzkFxiNWEs@}} zFXqhD`8G7YzvOYgK9!CQn`ZXDzLUUglWs|gUI3f8kdqF(LXYf}-sdFsQ(Zi(CGNRc z*;BaoG(7vv9vckB07x@FAgj|o>fG%vy`jza-)86DM7jO!M4@oQ>>};Qj6h$y#5nyr zrE$>#4EvDDms5?P_n>t09s7BUA<(Oz7Dkoc`g8;fuKCw=09oEVmAvI4PCFcDc!<_R z08MoDhXo1_qMdPU1V7Mkop+ClzZdcuY!hnXAn1RP#j4SaE@_r~0(DTty?rLY2%V~6 zxmVP8!ErVslWWmU?#@kmoE2;=y@Bv}XuP6k+(p4dgcE)O2x-Qh;V!+4jF-0b(QJ!; z(qf*o?&|oo2ejp~f3Wjl72HXA-2Is>yUYSIRW8Pjk##mI#gp9>zsbzzh9}5uz3{&q zH5lkQ963x)P1c+nU1rIzoyUwVkEnlYwun!7Dc+j}?YhJ@!TJ7$K@NkNs95ca_9`64bH3#?pinYa?@1xQJA`X%~mzH*)$kMbNFkH(7zI1C!#{u7tHv z&9HbZ2gT2ZO|1iHh`$?O$uTFi-O@P-U@&K|I6;G|>4~P!^*L<|=(WE*)+LiFI7J@B%(#<3g1`gydHCFFs#RH<}Y+c2mc zs}1ev;Jvm~1tsl4blUy| zP(ZS4!#TmrmjIY2`-&w51Z}E1*=3U88iGK0- z^LxhYB!C|jy8yQ{)|d;r(Ts11Vf?8-s(y5MKKy3?!wbUJjrI+KIj&nnx^+&Ck7ir1 z8OB-ocJEf*d|-T@fs0lw3Ta<74`y22L$Cpasf`m%11f(UUi&jBljo9x#ZC;hO4lr6$Ch|oTX=R>~D$h;>0+!y7U zEF0qFBS!*PWn33aC!JA>IXElnBpzzGNwNvqGFT#EVq&n&5JlAbbQZQFWhxjW~;GpSPhJp2}{sxie49wPN#@evxtKfbVx>3@voPc!$!J zO}4<);M{$1ZDLgj-Wc4h#IGkdoe+~byt7wN4z z0@0+2%SRw3(tXk>1m#U^TJZvUVDmcTg|-viF{;Qj{oOIx|5b-&d#EN7;#P9I50SPTq~;snpQ$69~IA!hH*SMlCvT{ueb!uEF=-uCLRfeMSLu1#wZ9}93<~m2vWj(Wc*|i1Ol8x-fxB%v@<$yAQl8i z{{oF{0rW_{JmOR%*K31DIb7Ew^;1P zq0#O9S&(PB%~n?t5h($u*6`EI7(83Fp7N1P9r9>`oiWTxtXO2d-pNnqA^V*xzu>R} zgntBXH;)Hn+?nXj+qv!Sq-2CZ=A22QWZ$_}>sQ~CCAH#z#U5`by54OKZ>8B8B>VPg z^2o^LmTe2m2DF**Ln-yi%q<(aD?V~%#BP~!tXP1sF6STFkCa0t4pO3nZ&iL^-wv;x zg$FQ#oY{%&cegQzrad_e40~#o7YLd;@)|iMBA6tXIo(f~?la4lpe->Ht^?m>Qn)nF z+I39mc5rGgea2#4>;uSMm`0=<_Hj@BKTSp&VnkEl{bv9By6A^M{R{b%<6?~_)m92f zb1pPC@`I<(?TYytDaCUh?ik%^k=i>RACC$X0@_e&gS{XD!S3bKED;B@uj5 zCwyeRhaEibMYymOuM%OD5f+#|;j9#_ZCQIbJgAu!h&y@W_CpWsj{&^6^DeubFIn*d zzrqOqHHUbvGhg;DUQOP>js?2ytg`iWCcXu z6SZFNrkfxst7Rrbz+STkb7eR7Y8M>v9fn@&-3km)N9d7zOkC1UERJE@gI6z!9G^N_ z(zsnys#VXKf4Cn#15QzO!XM~w%{C!t#tWZ^qB_Lg-nKl4HRBwjQiL7c}e&_`Colk z+N}P*5TY$1$Ny$zx2D^di2m6$HsoaZ+GKJ4S;G6|KVH1U71R9lvk+Jan_|((I}{=W z{=4MivaQTM3X-VchZUui+Jy5AJ4D%fHq0Divy8`|Uxc*l+H^K$mbKZn@~+Adn3s(( z$LwVgi@jIWRO|i*R=n_obNlPlqsUR5Bc}$5<{&JhsKe+3oHhUUPnKqlFMC%gKTK!; zW};0d;z46HJO4#E6S*k^Weq>zYQi^sLV`J7hTH# z2cOx@CTo!l5sD-)=nnjNL{F{yU4L9o{P!q=#=@krwLSfUO$L~|9Qb$Ug$X8x?*ANyeWpDBMH~G|W4L&S)cwb4Ne)vF1s^}MaI6V`X8!yEA@I$MVzICy zYjdmdiiq=_azlyfJdx+qBS>3Aiad;|k@YJ!sI0jR=VGKPMUU3lEb9JNHh)a~tj0q{5z#@pB& z;)0(|R+w3YS(NN=H5f8=pSZSl5MTQ36)evcJVxs|A!@~i3b(vh5H40S&-wmpD!n*< zm^g~K!f9_$gcac*aVzm=4UKUGfQ+^&C-BhHufyRofc#Gg42#}c79=X zKb4Gy{yL25G9m3vUt<}jQT$WjRJznZ1r|FPE06bb`3LlW{{$By@f25pjbQ$<-&eGX%i#Y#};d_T9p6ktuL|?t=_;3pZye!av1Ncq5Ur! zEASQ;si2gaY$Nc02y52bKZf%^C+_`yJ~XmE$jbaa7F z|EZhUzd%=fsK4Okj(FEfVRU@J)kxhP3lcdj)mY+{u7!uD1v>yHOnGz3AmHqAx{s*k zZCatH{O*N-J5#p-aRExdFHS1PA4Rd32r+x@CDw$CCFNfj+;1<(3D)`@Fn*1C`1iX= zbo<=kw#C~yUkuX(|uhM;_Okd6wmb*KUg*m zy8)~-5xiPjhX)r;01ZvJe-~rxEWSx8g1p+zo4OcUW2Tgd2>m7XX-C7Q3d}aHtS#>2 zA#)Ot=k#eV*k);GJFJM6WBY^9c{g|u+)g1mS0&{y|4G85G#kH3-$TQ`6CWGZg^g+L_rLVu=y=b*eetzn?z!G6j(iES z_9B>+7jCu0ov>f;SJq28Jvz8|I9c@+{lLE0vbVRzguk1&bJ~x6#djvjKFFSGtw}(t z6Y4?WYqmS&o^4)Tba16-%~wC32_tC{seo`13s-ZSO*)Xap$`eF87eE8{u?hUG2i9^7HRpcZQw*ynYRoKTro zU0O$t%Rr*I)^s`z1=gsv-gviD46bW3K%Yk~XkNYe7&-9{DZ*O>F_M{g=^7o{Se<&% zWRZ&BP-WJ>x3U&;jWOAR%PtLmKI4~m**XNkJvw#4Z1%4E!9HA0lSx#Q;HzKUq~x{IL?741Yc@NJ+0%D9RQTv+#%fu;Rd&Bi=kH~YTeJ?Kuo$8&qW zTIp2QbjGZX_7OL^!Nc(=?(>`rRCMiO{k;1TC*{*;SBs+%&n^qGl~EQ??7U2E4tL$Y zC`)0nhuu=~wI^Fv=oBag({nP#ot_%3%&0yd9k+IJcY-`SuQnd3 z5RysRdlS+3VPI~=2)#@ozQhy`V}u~m=>#RdEaLa~(LQQs@2DVjcQ^^l7eBi3s-0=w zvD-PVpb$~UeB>#uYRD+f%4c)X^>nu9m-Byac3v1MOKX_%&ukdF!{pN~WVMvorDiBM zOTDAE^=sN(T|U-El)Jph@%*Y(j+d8Mo$|ncVZ$mwnI-@WoQvlD3|k72z=>JYx`*jL~{NzmZiWZXkw#@#4k;`X6axouoI(AyeF$q5irV7D;&vik$Z4oFt8R;8k#pe2BoJ^ey5k(z473AKtPdJ4uUigNrP zQQuXiS9@3k6%blWZL_Bk+i47GTX6}AB7fO1xR&GLdI2Dnge>p7fY>l=> z9&&s9ixTW}ZS(1_Qvu+AM|(j*-A8`;^T+JzB>{d>YSr~@6R;-BgLD)c$&mWhYP?-1 zQ&@a_7AS#$gWc$j&I`(atXT)$jaMN*9(!j!1x9_Q9!|Zuxk~scrQ)sz7|On5HhA?& znwx+s^okIb`M0+n%d3y?2guPBQ38ayzWrHZ%JBuXlV**CiHA%Xf|o?`r%kpnRLF=V z$w?=4mWzVq_e+#TdI99)A;in0C0(Q9IU1$_wqWe!1VhZH@T-abZB!%p2B}WB@(=N=#H#y}*Pq z$#*-MUp;YC2}*T32k#|)(giNnYGSrnEoj@Oq&3G%t?)Kq=i)e59ZT5o_*`=Vj1m-| zJH+25n0%C$aFe1|-HdQNZuMGdiEA%%b68k=0%ZOb|rbO`AQS zZl5?`X?n@j-aae$Mz7&yWnc?Xe&FuF=&pGE8MGPvG-tk>a!rn;OyR{clp}k5Kw>@n zSi&0Y$Az9vu9OP-Rkjq6Mq`Afk);ZR@XarM|h|Kit!V}o}SXi$?Zs+ zH{yNsrbXGap>l+JxWG2z ztzwJY;i<#gUk>j*Jy#TlxhxH!(B=B(Bv_qtDDYayP1{mqmw;<1CnP_?kl_RGD;(+1 zPV0t8(C8e#+%3J5&zJ`_jw=XeKpAaRld5xOiBTrW}3pytdmIaWH$L_vp>5M8n^qHwe6Je6+6ndr`3>2K;;)mk#aK#a0^0^o&IqT}o%TcpCR550;I`+U4l zLRO~lu`|WXHXo1b!t<#NW8V9bsuf93PDdxMu?nr}CL_y_ zO;#_wHT!$+M`P5*;1}nb55q1V37=h4At4 zY&a=O>o(b^jb6!O&j%d^xj7mfhn8V?vqWOu_lh-=ZUo(y0Uq@b#+km{Lh?fHS0RRt z<85U-AJbeh^j5kK+s;dNA2)!^Z(Ut3ucJ&{@42i>W%G5_Ih6;!2Ig!rTx~?AyfydE zEgT4g6RrWm6~3)U++5bo-`At|o2Q!9-331^HOnc*55pbLKZH4LG4Jc$d@C$t4J#?b znAoODYE8DAUB5|{G;!i}Yjx|v_^>Mj*&C_QYi1U4J*X>Nb}=o|mG7$3AMA+N8?f)K zP4V9K5~46lIh&t(>Mu`uPU11_Jc{XYs{67Bq?!QcbA4rPoXE4NLh(KDIl3Kw;uc(J zeYbXTwp4SsmQ%Y~a^{rYvW2C+7$-|B?s-K###l&~W;nI;*PDfoe6qP zW!-kE!#*Q&>9G@JAAKg>(6`V}?fQ0O%l|!QXArrFqG$uMTy=MyE+Ef-utgjD)#j?>1^Yob|# zC}<~=-Bi;ryA1+5-RL8|1CDehU9n3%J}I0_dinxH9tj&OfJ%c0wW;dFbUm_}M_~QU z)>hxq8d3;{?|cTk7jzanH7x6m7g2^x+wa zk}p5=LkuN}_eJgO2;tLg)Exk`={!oW2cM&r2O@~GQ$6hW(Nrg%t9%K%$j4m(*{hiG zU>_%c%W!q5$#Gt@8PU(1$B*hx(RUAmPaNX6#^r1XCQb9@B%iMmt}sRJ?EDpB21(k&kXs8;DFe7NDTrzm! zQLCGOX4YQ)`J-e0=m~eir+%=>u|2Boa7p7bw#9U*g*~pAENVoFt6nM0y2(x#D7YV$ zPIxkH_ge8_HEtUx>PC7VqL@mqo~i=Oj<`)ys|2t~o)xn8blZ{2I zR9kUT*NCEbJ-SA2e_iA}SdI>_A}9`%UruOS){(qazVRjBA0Q?CzE$m@bdq=JlN%XT zMegpBqjK_JEMVL9p4T;{VL?nbzX)Os;wyqVLK*#Y@hr9{F>v)}#Hln-CRkFOQzTI1dqS9-?lD`x| z>=7}Ckbt*PsIg0&?zY&UFTakxkJL>DETDh~JeZ?8(+^tg0HvI%fiWRe9vpiCLW1sF zYnr2g1LMaHrRe!@_zaQD;rrXnVMov`v)W8f_uHNkv3wKTjk!in_q2FY@17dVH^nqkl3oohlZK~z%GOY`JCC<*7c*U`SQs3;>k{Qh{Xnq=p z^#NvtI5wr zj3bk=Dl#20be#_y_{q(*N=}P5=a9RY!8SMakChfvVwx-DiVXHjgrDq3LtzKG4sO zprMF}x5(>pziK&)=C|LD85z$q+hf9pOr6B7?N*X*j)2^U$v;Svvx8W}&5 z0I$+kl!o<(I3E7H^K6<4qwV(PC@V5a-Uki|MmJ+|o8Vcb{eXwH#chq4P{k&ioqDsP z&dST+)+#rv$Kjw=xP*tV3NNW)VAoVvM`7n5khzc!Di)bS+Q!Uyx6zs_idrv=@8KMK zRMucJp`4I&veNWwdwgd1STcBIh6?;@orgw~koAc7K+6;oQMDA9eoIwlh5$TX3<>Bx z4#{XRQ3*iu9o+kRHoHyY2*X__z&TyclpjCO)(f{GO(u}gyD<4vaf995;t-VZcCq&2Jo142 z*0_36*WUIs%OFl71bjTWE$?{6jq`b^`bJ*gq2}ZTPRk@(g77u&Mq7CxTQ!|tD#wfqe5qx>3Elkj~0YQ7*sCo zL8+TCl@n+0q2R@3ZY`8rf1tf5q??XY4ZgXejm5&tshrdsmO~xDakaHgmzWt@!$0v5 z;zgqS=L!sr5Rr=? zNRj>rc}d{9CwHcjh1osvZ^`aghjr7wy>g(pAnxSo@Z{x3dW1%AsJuBrVs034ea5kk zAG@acHO~$vWyVRD(glGrN(pRIy#nzf1;C~yzbibBHMYnusN7> zgy?ci5CDqOYq)L*$m9FkW>xoqksoFFT(GW3xEJ%k=3wmb=b^4S(W# zK_F>uuw^YkeeUhx!~}Pqo#!xrTASn6DH$vw^YbBl#`aA_Eqw#ux?q^64%YGW^-VYL zD}n;&{b^7kcdjgWY0I_4pE)S9WCiweV&Rx}u~hB0_i3G(pW$WUGi>Uno(_mz=rUR6 z1x&b9J1VA_Z?bn?{LX(~a<3m7MWfc}&zRzO+K!hJ&VNrBA(c2>`S$guYiPnE@fhnx z8x0(<>!9s|%p4S+n^04HdHWZEZbGG}>L_&Ledx7k`Af>Q=|KI7yxOg(6-K79$gqzj zm+iUtU@pi<@&t6x=b&1s!YhSNX2(gsNCntJdr)E&=3cSd5Zy0-q^^56K&}$pv6yG^ zv4yH{l#I&*hf~2nyL*bIVn>KFEh|L<#uWIQ2ti8CASxG>XHvj&Ig#8-RlORD;ywlZ zf^RZitPwsUh)8~W`GYeQgn?080RpevzpLBsz}E#`*{D2Iye*V2WPQnsIzS%ZW5oC_ zpkO@eSG!`t0z44uOzno-Eomg;p-m9?$vvNOp+uU-R7a_~!f}Rw0azYEyN478sdFm6 zt_{zDMA;;RX(Hp37-^(`dE!nJ;?e2IJreSk?*fQ#ci{4?sp$MveyGxiOj*%HwW?|} zy39^&ipOn?GBdb)jzZM5v5reGmu}>3+?U_*bC5_&2q-hwAYy51pH=1Zkz7iK6nNZ^ z(soNtYH7aMebq#zWZ&A9*8F^2XCStit%&;&N<9Ofok7<0SkWDy>RX1hZi^Kikc>`9 zQ4T2~$g;_rD8)Cf)48<`;3!KGPJ$e>6GZeYRFx_8z2HTO=f#9BI*4FAzYw#?%1*K}la>wBQab7x0uGDmG|d&OyhyBcqMwth(d)48Cy! z)6aOR3Cobv`z;kv{pDbDf2bn?-TNubJG{Fqga>~fC4NP=9~UHMT%lnes1@b*lcZwCg6n;LiNNGC5rV>8_t&Kk4xO&eULp36>KpLVPA zU%#J1h2gY<*w(W{z9!y|RiJAyur&Nua(mVWaBa0ZKFv;>Z+r=#uDMEO8&XYkrmsk_ z&k`?7DY#2djTqR6iIZR=u|!tbJ8nDGRoJ0euQh+kx`=)r>Xb_zppJZu()-lXxkm6= zolDGUF<`-k_j1|Y6DK9r*oe1(x)v0ZM~_0T_u=M#ZQ+4jjl>kOW=))69xL-I z6i=JTNr$yg9re}an_B*91M}_o4tukkVKQ*iNo9KSjg6dlJ+k4{^@#eHRl9sN7wEXELy-QC&ac==kwVt(n+RtGb(mQ;Zs)^mmJqihx;xDUP*^@WpL-IiO2vpbt) zb(v0BD-~-GmWampM&S&QQwkwQ!VOm|U*~y(S&CGaT9Ui?kTS1&T+7MEl#jX>_YG&` zghfUl65Vt@&wahXF2-j+hshduKw9QN-;1S0bM8(5FL9>pM8hUN)Fqbgl}VYms1UBygOoe9e=Nc zvS&1PcOK(z2rs4^almJ$Kj>0t{;Aq!uRgSwhf<|8|Ekin&rmI~fZ1f#m> z4Px!w9q4K=$hY7xu<6&{Z;gHHC}`}2*W3e;^9IkaeonZ1Kl?PD>{}Q0AfEYTq~E}R z&UDNf-SVW_(R?)TS`l-EJA9a`v>ibr3YdeoV9Yv}eq3GVs)6lM>1zl-nLlc?TcXkX zJaWLszS?g+_yZSjzK+z|+ob`;y4Z(stf_yC10N2tmN+Yfl!%jWkKknlI*+A6B@gd+ z+lJtRNfJWe)_Xfmj?TWOyz`tymmp#Aa+9p~y~t9FHOB*^Dn9%{3y0mND#snqxxk=T zh3!-8HhYES8c8cOuS#tSvhEJNLijpwwKkQXFE3^be3|inN*FfG05iIoYbpm_ zCPs>v^Qx37An`a2=}t~#UAfgYw|OOL6g7E?^V~n^?SIaBE*{!5#D2YW4?Md;5r(`G z>RtIV!H8K5^RUUllqOyhqFiifyH|A}jkr(Z21jqTF15>LQ|B%{obQ$veryozHVmZ~ zQ!DAc&z+@BZ&YOF;HPMljKdT17)ibw-3SC6GJ|opHaKmK0EzQ&UZ@lc0E0f4{6KPF zSYuv_^{l`ncP4L?Jt&=3*p9ed6FO|PCEGYmn|(-r-PwXHX@X(AiBp#sS^zc0ebt7` zdRXC-*wPbu5gXP0)^CD(tSGyydRw4Rw(<&NBfY*neu7n|T>L1}Ev+wA19JiLIsyfIdFf-k0|L8nN7oB0{$!~66?QbbVY zC7;c&_S10-gL!5Od7|{D9rFnq16_;q5vbN3l(&pu=itA0J=KZaY}`-{e#uD~&kQ=b6D|QUhg+x+8X8 zTfHVnS#B2rJr80X6^8DITyJ3hG;qQuEU~<#LXMV+vD4rnG}katV>DCy6ms8o%Ncxy zRBC5N;1^VEKS@sNPoH)sT#)zEl-dM@{TkNsad>iOA&U$2M>cM&xt6yK#QexHq z67_l1H0#VhN%z_~ZIpgM)(6AgXEN$Mla99)F`)Q`l=8C6=C;X6?Z=O`8X`>^robYt zH}1$C2?WUIJk9i$DEQ7;I=e?p2#zEX$t4Q_xRE*$&2 zLvu=#g%@mUAEvUWD3Q-IU-v_ES8rb%t0&EUtPX)-N@Rq@F5a{^&k7t$-*-5Y#yQX* z=`_;F2{;_vXrB9m0~>=9p%fpTtx`yusxSz_A#W*zM_gKNezYA)MK5uXtuIyaKQkTk zm#S=&RPFO!^e>CAHzHTZX-i6>Pp9wS=lrTEtgG1roaU=U>V}QTt@D}3#gUb% zgh&Xy5cqLdXE{@Q$vcDROWraX!+3jaIZl_xe!p^e!wHe4Z5nIARUx@5ILI9N(~z9` zD0n#ceK2JivO;(}5n=YM^<_}LrLXQpca(9VtaGr|(9Kpac0O{>PRxmUlMRx#A(eOW z0<`C3waO&UDEDce{%-4B1DE{rt65)vKQVp*VU+>ugt_15k_L#Jb)3T15s|_hlu+)D z7lh>lt`y%$CgGRsKo5T*3QL>+1Wd4B^8PiP?)bqst+~e$cYO2RTRcZ_3r(|%_V)s) zW7h2zx{-)2gzUQ-l)G&nol{#)g^uFzT$9&*$y7uy7$AH=@ido_S|$t_@h#tH8mxTZ z?_tSfRe|ZfZ|2$CPUF>cX_xFe=*d|A?PWAf>O#~MUmCK%r_71l(!#G(S|;rb0oSB? zShxTt@`DU#Cryr@QD!r%B@@}bV@I^@9sxB+>tE?0_eQ6M=DswlF&Unx><<;efEw}) z=bwB5V~5HVfZIuO#0>B6C8+dR@X<;OF4k*xPL>a6ijyOD;TMu7k=f8vZ$oJ)jtmnV zeATx)_gTc*{xWvjU3*!8@CASE{+AXKPwseezbM?!xtdy9vM}%L5OdV>naMdjB|@G? z-;y}!cO{LgYuj%NAIYYrk}uT?p&}Jh_m=&A0*1of-*7w9!9phJ>K_z13`iI>T@Tf( zM2lOjLT?&0s$YT=DEbD_l*)L!4J+5|n_pZ;ip9$of7|@zy-8isaaQdRlC6YJMR%sE zO(&pJ_~>6$cL*CmQuNx_BolVLB4e^0OvwgFywIo>+0l9b<}jj;Q~uqsK=G{@$t+A` z{|5FP$}dz(Cb%x+@vg_3R@GdlWvRU=d0^&e*McxN(Xs?BxJ;4GTp~|l=B}^;|t?4 zYJ%THkMd_AOJ^vA1tM&l!|DG^ktmHADfHh;WCbN!y?`gG4ijQ!9{&Ds z!@4SuUjSNgb98sxShAN8@8z&u~U%$fKHIP`$r zxJO1vlviT|m>3IqSuJm&pycAtow zC`Cvn5y}5A)Xh&*v-|beUqXE!K1%s(*QngVwO{s-Ibz>HeoSQ-J-Of4s~8J9Dap;xDA`kD$BU?6qq{4Zx~% zC1kJ6pie+Q_Pse{=@&UPamfw7uqr15q+qUlu3iml8!YCBiJAys!F ztc$N^3vw*#$Ii^ zh|+jtyL4SgL>Q&1E2>RxI?l$%*Ol!7s+zSG^dfxy*Kp<=2Q6wWZmUpoT91@R)Ej!$ z)K}H^%X7bB9|EMMBOTdCj$p|o710=T`nJU-pVb>6VJzl}!bVNC-xW`fGBEAGCVLSx zfJ7~^SbrBJBpMB(9m7qdTik^V6i7cRKA<|_JcI0OSWg8S z&N>C7&C(_m#7lGrveCtRUd zzuHe%)=8)z7%pF|jH$7h0!t^%tZdjos|$+?>}a#96;Rn^F$fvyYoqlPY&x;8nvlTM}vB=Kno2@ zw}-J&-lu~NNfQqjy_f_)50FC`G|hX;9D@l(cw{J4;~j0UF+B}ZIUD4$m%_Yl_c4P> z-VE4|)~(DZ@k=Z_9)aMm0h=ftwb;V)dnJJM!ebFKK3qfDBnjdzKYA-vc~tx4xxii9#RAo3n*7lFZic4`Ytfd7G|2{0X$=1SI(;9{y+c{- z3CT}q=UwYed0c3|7C^O8Io~!eT6w-r4L1WV_z(U2d~{1_qXvKlO>mr*%s=lnXZqq`cfz-Kh&3d)Q zS!+%68@e|zy2g90A5I!?UV{X;@^E~usyVVwJn4OkqXCY#qYs_(qzeO)i+AohRuxJQ zVZ;OSCC;0==9)t(?(qYLB?$ zXDW&xh4F8fqljjpb7WWOXRoxp6Y9@QmfhA;lnORRv&k~VIa)>@4=8*C+!<^KeE82& zg1KFZU1y#v+c}C9*xRf)3do>XzJ91L64Z$3KDh(@flBJDJSeN{L0)y&a@7Q`3>gSYBlS1j#O~Vv*pupq`lc=)t zjTFswrZMS63x1-{5dhxtHlt^B8urlU-7Q53tTk?R4O-*hc z-Vfm}Y+p{gDFraYCKI)qGB`Pnsxi{Fy-8%cJY#_tUc>Y9b&9CH^qZP_O>|L!$FIvy z%=gtp9LOEA^G?*9mJV*E_S}#x+}#<=rGEQ8q2BP|ki0WA_WQ}XZ{0Hefb3?}#?zgb z>2bZb+l3m!-1|S2o7E!+`F$wsHZIiU0xlT{8#UIlc&~kOf7m$_3V1< z1_f?M-;tc|hLv}UDf9d6QLySSO_WC%C1{KvcXeuTQ|X?C5a6FF(^4%*uHI(G_!^hZ zgMHoai>+jom#mk87)a!K#b{vbd;Mi9n+0Z{o(W0q*WMbp`2z(`LYI$od@}YG6VA=o zJb^8t9&FY7luuLZ3luyuv8KH}%{69PXQf3-Kj;jP)%!Ur$4;G9N(~AwqDTOfCQ{ep zX^(nE8UcZ2akD)YP=|++c#H00`YCLp-jQVarJZpQzRvN`({OHoU?oM~lUvG7bM0hu z>z3G*yxD+2Io{NNv49OuKuxqfWedpLL#-%}7Atv=kkYo1-KA3Ib~~}Oi0)kzhA|`? zy@)#Bdcpe)BWkOALG5ugxs2wv$GJ8Xp~wrYt;1jEP&h=;6y$=RzrY{gaWcn|K^rbL zQu6J4N!e%hxr1SXz&6F9cpv4n@n19L!iLC%a?~mR*Drb#agt*ofe9_YoIs;m*7&0ySoH;cY>8-#Vx^t zy9L)k;LCH)`=0ZjwZ4C|X6-#YduH~`ec#vhLl4f)j3NnmQzZCv0_$x*j!W8^W&*l< z;;fPyOpOCoX@HRMD?AmuHewaF8kj~Hv(1%eEuI0BIa4DL+90>Z$!l*f>N&KpfUvj4 z8)V@R*cSto7GWh4)LT|OkBds3nBek1t3R^FZ}c6A!%{NbA>3`+H=ad{KMZ3>heuXB zd|hr2VZ;H*$(=c{B)zLk9UIxgKtrP)HPxN;mHe=4tj7qql~1hujxHxgaT%Vp*E!cv zL5A9Cw|2&+`b9-su3EtT58gUYIycI$@*4?d z44TnOqL*HJ-dAuJ3m;WKZ9%@pmFCTA>zHLzEEhcimpB}=0$|{?33O@;!mne5>-7;511ElchhlShR{-p5k65Kwl>8u}Q&md$+${@cq zfyc#XS?!AK3x}`BX_U0Nq{@v9n$|EB=}NmW+w6ET2#6}RlY)?I(ilC$-etdU8_O#0qzG-Lusz1v`T7=Y}foh89gy0BiC46~*C(inS>5Fu#kUeDTt9 zI}PHw{qkN;j;RP9uT#lCXn=v|_J;6+0pEj?&OkFUz^h2aN1I7cBbTjyPZf{r7%pso z9lgYOM6a6hr^N@XSO@3`&qDMRhlSGz3BZm|xFnY)h8^qb+Z~kzSk~uZcjf^Q2WgF@ zxh9BDapH1Q5|UJ_CkF8hWT@kHSjVid3xcV=VlSS1pxIxjD#NmA)L3tioR!GvaHlmT ziYZfuv1#<%SS+3PO-~7jmc0V$p!aGVy{k8GNiVVRh*cSyZw&Ehq6{odu58ln2 z73d4zk@(26KMHH~sbWaEFwE9$maeSpYTD=2M=AY5w9fcYErmCMt~gpik?L8wx#Bm&Z!=rc3t7ek1;9TaK_-zGEYRMhPN}S5i&`Cn(xH7p{%M$djibtB% ze6_y$);6n~Tn|=hx!sf63F|E_M1rtG%Z8aFvn&)_t`o+eWfZEF&S}~Ml@T45EsDA+me-;%g|SyAouapkQZ6RW7*3oolwKAu_hN8e4^$b ztRXEc%V$b?aKa;4ga=Af_mzEoS%N)WmFbeRs*0Li!FGwU*!N%C6sgY|2rw^RUi!ia z3xBbbe`S;Gec|Jpk6S70)%N5tF@djj*?rY!T%YN=u9AVL{rol-ZWlV6nF($Q z6Ldd=?ea-ItR|@#(t8sE25eueP8`)Ysv)J9AwyZVd-1CJJUA2>S6D5stknmI#!rxr2is(WS>BkfW&Z1bwIQf-oC z!M*)@;Z&iX{k~J6tXx6krATUnTN+1iq_pH$5}akV#lMG~+t^%mn@8Bqv(p=e<$UMc zKWfA!k=e^pN+~#Wt~xUT3l2Rvt4^nR2jjspOYO&q?KrsTL#*~?1Sc>FZRZ=EU()qL z#$tz}i|54J4Z_1s-SAyjX>jvSP!l6qaNPBSj_RxF>3X;h39ox(*2{(k!Z%x{F8+Kr z95f`-8Xs-+!rHag#zQMzB4x~c`(alm`9${AVn>Kh2PKcP-%U<8Hq)O~-Oqo8OVw?M z8X2NFux4BDZ+nY`C9pKmhiU24VKe>Z8m7%l`<`?H1NoNR(cO6G3O}T?2!Qvp`+&`$c6r>;x+)Oq zf#I;PH*aGl*c*Wy#yn5krk;0uwPeiJ@y}lWPaCv-TR4K(-sD=uoWQ;ho1;}6!p_0a zT`&~hT&a#su-=O*G?D+038b=3r3VPoLx(4f(fcVnTArC+Ps>44Il?($dGF{;Pv326 zMi-(gLiGCxPi>;w(6bd-w>PTvH1ik-V@BPTWvbUHr@&lF8B=Y}tMW@lV-7PgG^u?j zEI#@?FEO^zD=TQ1;kKHDxC;Z8+Nf8E9u)7aW27B?GaNDri{?_20+ zu}U_A!0I|)HjPAfpd*3sB)i8%o3^3E5C6;`Ugy+x8E}co0U5F3V^s@&Vxmn-@;hny z5uUvwplqoaKy&&VP_)SdJw@pv6-*j7YfzkMskJQ~SC!`YZQc#U9(pA%ez&bp)BIfOVw= zePJnAOT4Jw?ojoRH}I?Um2AI6_PuiGc+0+M6JGgmsO$M zS+;{6u`Ar`P^Hg*D+=!TZa&0C*n8sCGr)3tn>tz#q(jfx|5>Qhtv@rBpl{p%&uyt; zwpy?kO=L`t9xXU1Cxe~5MK%pOcW1-^mX1j#lt^Jq3=mX=<(*0_&J*~L?daQX6&m$< z@*3OuaQbgr8HBMj;@jhipmpLHHqKh`N6L;x;M{tlpDoI`&kzZrE6(Y=8C*UZVqA)( zq9UQ&oLq@ zI%LO+J?~jHe4^8hI-Rsa4~TdA3y^=7i7E#J`Q;Xq#@;q(a?BrXN6XP$jBQ}a+Yqy* zmUdoe%@6r#u3(TWN`ve#WLma~D& zq9U!g2Z}0s4f>3?537ezxaDrMxu00(r)&|2+xu0NYJl%aSH3X!7>(Pu_hoG4lZbi; z?cRp2 z0;edCnZ~?{7J4~zxnpEt8uk<$JTC;YT~!>(>MLGVS!VT9-;F3brgv^YN%1-#PZh$_ zN`XI31ix=HByG?aCSrkz(%I5~Eqi&6tWy(H7Wv-45DTc{+|pW3TAok-@G%I1F~Xvw zDxdk1=*AF~st?$aNNl#9o}8BB$z?`wZE~qI>X;5|%ROdQAgFu@qO9&$d^+%P82$R7 zX0$_ysk}6LSnthXgj9K#yHu;PR^i@L>fdNb5e2U7&sujn{{Yjd{)I2An7iYxKm^AF zX-3vg8;8B9@b(+!A1S^5T-YxqxuHmDL@ODcoA|WGb$VlD|6LI%eVH`+^AMY+n9p3q zd&Jlk<eG5a>M_HjqjC-?4z8N(i3jKkl~w$o1boiq)h2$W=%e zkopu~xnCm#ioC2-1hl8zQtK7TJIK?ehJUr}^V0o9=AxiM2syxyO7x|dra3B<+{}KK zSsvf&c?C?hmc3$u@-t*uOXnCVFS%*}zCVFZFm;B7Ux*F{ptCapXP9Vtti{@C^Cc9QoM;G#D`vuM3a<8pEr)tRaJ+14mXm_bl{_6;K z-L%(HC;OWLyI%BXE)ZMbN<5UIJHk1n8RhcvihHuY>Cv=15wmB6Z^(Hu_23Hj@lIpB zIVN|w;vFmB>S}aE3hlIvGxIgS8lz%kS=;(MZ?A{F%Z~Z>=0KS2tZ|Xf@z*F(Bz%5* z3BJ+H^2JFpr?@9bqY2hvI0A9LaFq_OI;Yz)=r3^nds!+|j^9~?_kr^BUdb^}M_*0! z;zCs#bjZ{9#%!}yf4{h|_VezimBq3Cnx+iU?cQ2Q^rOdzK&Ff$*D4dun8)6koZhR+ z)jApc)A!jS+3Q%CRvfJn0XVn29anlDj#69zE(M|BthD8D^@zwhloY{q6sx&>T~%e7 z+=a*y7!fi?5iUo|Fr&uEf|i4r22@7FPL;|jaG(>^dMuaJCy1?IaV|c((RKRPTo1#x zHRyta&-~Dv;HZne}2p~!n(WLPNq{Q zpOn^-DDl_3SFO+-b2j%k(txT@_BIHr(u8j7@3ZWmDVooNYn@AqAk9MSep!Nc9+4G{ z84DuAwD(u?{BJnbYBgoCI#H=;aZLPj)BvN!+#Mk$lAijk)#s1jRVD3mQ^A$hS&E*N z0l-O7hG8KqdY<2RS1a)`@%pSFbdx;Zv7qYjH`$fx8DFpMlm&oZK3}==12zEnahWNf z>77}5<8%`#@B0d>6$^*63t!q`;hx+9ufgQD7vVc$ttj5cB_tnL!icE-RG#==osnkg z$F6a#(~g?`aZ$j2-W}83+Ha}Z@xg5!vj_r@hXW>E?<*J@X9rG2TmaXF7N$gaGMx^5$e(^E)EG@3ACEe?nru|-sO;U} z)M?SNg7b_5y)P&!_MY&f-Q|3G9u%Vvv&yPZ(@;mq!j!N|>~;p2BCK%nFFBdz_Ol_X z6hrDtvYaOpYI)Iqx?8}U7aUf*Jf;L4}_l=`XdEMf(jHMD8^vZNUKwxg2n1S!14wHUPAj`t@<)$WzvlEMu`ONJZpAD zQ%GY-rpHs-Tz@#(*zvwnCAe}SA^2yC+81G6cU=AJtxtFdo?fqGkD5d6eyDVHplKnl zPKXZ#XCk|8LAkBpXrY%%<@z|#)bm^+;~D!Oq#rGGs_4@nws>rGUx_ntUDv**MVq3~ zuO8m3wI5Z`h2XuOGzNUD3Ageh=4XW3vKq* zl}rwJIE$|LVDbjeALQ40tk-!42g}K|PBosF; ziFvXvG(mrg1OiPrIwsE(;qwFVXU3iBXi7Ve&aoi}NO$itbw!@T30^bo-SfvejbG_} z`HiX^qw9_NkzbV?cipbVa8bzSo_32;<1NThzBh}}6li}dkB(ZsHipAAImTv;_mSWM zQf-|2_)JOjX7K*9EuzV*8_#&~k8gpd)m4gKJzxyQ znWux|^c{+qI(?c|-0ZUn%vALni9?EEMa6c7S&0Kcl zi~F@AU;CcC`%^fNi$3;|zrem|eT-6N$tf=YC0BmXWFhW&Xh zbn7t_^(#`WsWbYCUZVTmWF5TP{3bFB8ZPj`(-~O$c(enh>p9AjmcJNYV)g;ET=8_~tilCB@zIpcph&4^yQe)}y? zE~i?o3km)Jm^8dmO_f4@(Q^bIrw?`v|5Pg09Z@^cMBEd8I`;QRZ+uuk2MAVpu!h81ezrL8awgIusg$29_cKY>DhcKd{Vkt5h;)&cv5*0N-8{ND-F ziY~48jjx#XZYmF~xI9Ybtr*thnPQgMJu|V5M=l>X|H#?x97u7=L-IX$V^;uNb7a(v zR75Foa2#d6Lfs$T1;Fog|7dF6tj2U*uMoYh>6<6L_0@Zb9;WJWHpPh~SZmmw*R7=% zcK}~gUykYR&dq|3UlwkC0nDsrW`?%(({dQbG zT!PK0rH1o_Mp-im4-}RJ34mR9(OmjsWnVLtvX=~rV!!fwEU2AK2%nOk5$ zvUHaxq7KG_<(=-9B93I`F3z)De@H3R?azb?$>Iq)@NcG7%*nPdbzDqlVcRx+NzKOZ z^3`NGo_HIx-<8h7dnf|yQV>C?EG`0PyuM309Xm?9eC16F4%^N(sN=1^D|FiDGGx)r#4b#Wx)9<#8&x^(y6%F4+kF@5WO~*hrm7=y z2>UBVP=br%03}YbCofC8DCiKwn65d6^cjDzjOgT~4X)utp0alAUa zDif_6d4AD1SjVY2>0ORc<86d7km6~MVs&Jnzh7nBTTW1KZg`FazSuAiH<4ngC_$~5 z&_AN0gOu~nooYD$BZUEKi_u3559)$(?IWPzRYt5M~e9zRF^v^CgAL0{p!r|Krwz1N|+s;Gz%7etfnosR%h2Uw!t463r8FZ4kWAk$YoI15$cSP80RgCis>_$cBxuPI$e>%ywIGoof9Y;y1t1^#>8RxR zP^~>xE=E=IsuAJ?#Vq)pAR$T;@&R;4B@_M4IF3;qlXD3-BX8jQ_U2 z`N}TCeqcLTFlQ6MF3i>m#|-(xKQlGENm#B(F@z`~&4zRGYN zKTp&O9!Toah(tpBCwk4rvVZ&$;4?61WfbD_@9Sth{3AHA+-CqWbplSU`u9hJoZid!T<7^)eF& z%Vo5;gnD|Pv=s0BMB6M)^ZDPOT^y&1?ddb(=xgkDDwH(d+V37YJmcwD@k?{>J=W2e z%+ApOgUW+Pl_`|qWrcEjgPxIXEmJ76pl{MZY^~WG_3SSNDtD0;iRIv8x-R-fqGYx! zkcRk)^WOAK`^^N#>2U&fjEz~zB6f5a!Q+F#(HI5JIr^qdT0mTQSw?&^E+4G2Hc=Iv$2u8}}Rw#M}} z2BeP8aVh_;BtlAAP}XSQ59e&=mq0LJhO8+a=I&lW7x+y&!CWEqL?8I45;9L#TC6#y zPsIq_tV7)VS)^n>!qbmqvf@dz0JL| z$-~Ev7V#|ZL#z2L)8gsNB7;Z&s1jR30)-UmXEM7FUQc-020Dj{9gyRv+PuX|Zb9e2 zI$pZQRY<{sU*wP@{xvnkcJ71uhTjrduw%xiLVccyGG6i+{$dP5XTWz0-*Ka**Z_}A zr4Ew!((X=zTpjLr(3m>R%7sx-QllJ!J-rG>s^+r=?jrQ7N@Dxu2Ffck6$vdornCIQ zZ6~w5rDk-UZDEF$?!|h2W3I{@G(3*+sydHy zK6_wzs7BY5GUL!Pmf=P$!>S^*1TBWTt;FpEZIFm?QlsBmDN5FPldh8vrFVH_t~j+W zY?Xqi-{JjZ$TaQp@MI~zlLuMgT1%JGOV{Bm1qvEEpE6`rjj>7I4&*NI;x!Noqw!Q5 z5e9M+wm-dfzd7_8CXv5`S?CsZclpPQm)?hxtIOG@CWwczDbh^tMyvD7cY+(?e)h&xeW|8B&d1xRH-p)%u z2X$3l6uSgH_{#kbW0k$-XXnH$y&_N{s}9p?{%F3mIo_bxNXaL9z6o3#?n*#gFR8Yn zk4fWQf6G`yy&KB&Ndej5o2(e$lC16VXO1opWKy?F15w=pvu zAdmB<^)yzg;q2iG-ZBG6#Lq*bF>y6AX+LuZ#BMJ!US5ado<{iA`R)-gB~;q)o+Tad z`T!65YYNlG&pE+T9V?qV){Mo5H$2%LD<{KMAg^GasQlbV?Tvn=elK z4Nz#LZ}bgwO%<08q%_emAFp6V8&FUvXyhN77bT>$DAvu;H_FPLrDlF<^az)P78T1J z{q%> zN8}E&1@a+F%;N0?;&V}-bPQ*e$H#Gk>J=Yir;ps*NBOtb^A0ySX-Zc58|OQZUzH@YCM$=AWR?z=kr<^4te&8?cs_%ZfVWe6 zzKw=rEI#a1%;k_SLKOn<694qqj9V9OCH{VOyN)Aeq zAGiR|wVTp`DeSK|N*5@wcK%C&*Eq_>9pr=$D;dEJmv1?CzqJd6kX-VmA(cXyh2gqR ze1^V%bb${|SkWTM>?a~@$y8iMzbY@$AjXHSnbeWgz|fA*Zs7f92O!)}qItY|I)vu; zW8F$}_9YIuvwQA@0nAd{U};t|AR`m5+%d+$Ls79sQskk>(z8v;_LzSV`%g`P`X5`rwk2xqXq&mt-yIEE5+~~RkL{?yT7X~ zPd`9R*YInBG_iTucMD{*%enR+N@Vz zl=oL2inG$Rljt3ga1>C3Pu=fBTUfOs`a#9Q3OSFQt25@QfFx}Si20kHb`~Wh*R8&sq%5weXFq-PQX32xL&w}^}Totf;J z&F*J6qF2z{d|x_bGU z>aaUc3hhzf=91cAqnqlx5BM#|eL!JnZhL;ecH7LzxD86LPPoxgClK5++2v%)4ICL(HTmz zc`&P|0~gYg>D&p3q$`%(G|Qw0#PA@d1Au*Tx@M0sFdNzo?>6QtyqN6!rvGEmH~dTS z1%VekH&)cZ97)6cv6DGCoQUvRZpcW>Hy==QLI^l)TDv?>5VLRw&XsjO962y%M8M5Pb_=Ni=pdI;!9{^is zGF*Rwuho;^bh4=bUB|@suCaeRL#i!f9MF8AznCQM7}z;CK6LO4SuG{gzg;Mj18LJS z@FA3vc3bhh$k{5=7#25XdoC@x`F2ho&}3EaoE2FQTV-#4xrcqs<%GzWBR|WoR`g*T zTpQzfG!5f=8ZHw9jx>lK^!DRsycX>**O>`u-pSTWy>0-+{iCD1YxQ?oixRdelYO+QZpx5vL0NBUK(}$@&TG)GWaZ)@{f8 zSoj4Z&OE|2GR`zMyUlyCpw;{suQXfBUe%RY_sA=g!jo}OyRSBgX_Q4XEZGis@pxRi zS<+iKOGs`VwUh&9?G?}5wK`hQ>@X~jcD)<4;whP&Wri=zNZ?dO!n`%LVl-peeKHbS zc>$h`*p!R`RPf3+sP5y-M(!fJE6y_=9+Zu|!$ib)u@xI9Xa%Tk0F;K>w?yadY6tpvIpZsfdXtvamJA4ZR+Pr+eU2l3As3S{vL zO4__l*zWf71q(#nUH%K8T~KFyyi(IdE(^?j$H=Vr>r)PojRXUX2dOKlGAU7`9KX5H zxBi`?VNs3w&KsZOCML($fT^=<@p`ZIwr^HorWAs5GWj3nX1-1Ma~*yU?_>i4)YP+q zAoQuf=7VU=wWc)Td)dSw@VSUwFU!sdweaA~1P>Qs=InSG8?X z+(BY#WGGc$UUzHs^Dxr;iQeoti8WReRaSx%_xYdbzK}_zCM69sLKLtMY8+`Wt5m$7 zbUhz3_pr30sWt3==jStM%n$qFMLVSuC+XluF=40Y7OO^-s|I2xbOT6daNykRKG0Mxfa5V?A$gm|MwzkV# z*5{m?uE^Oexu4)}JmU+bCQni;wUc$RwG?Xd|J=5o03^*AhRsnj!w}j#mw3f-n8m#r zU*;>WOFAW*?1C6!Jdh`nUn-|?pwK_hr$&DJv?LAPY9ww!(7Ty)Xv|v*d35Ue171j! z)UMaUlOK{+JWlZQxaWUy;h+_ll0Y61s!I*?OW}WFF?8#mP^cQ?C~$uM@o!gts9I<@ zO<|nX|D>^h{2!3Ue}FKui7#VvfpgDcg*p8H!KpCI5#;LyzErYQ{9ioB7t;R~GVcFF z6W1tt@c(x#;J>r#XtFrk`$Al{BKJRUZApZ;8awspe@Po(NcZKiaT)%Fko`+Jzq5Ds z!@uR1e*q_&!^}#^c)o(XEfswOAQ40PkN0RgG~LSx1twfGf}A4sxy14vq5NN?>aBIR zlllMd>OXB||BE9JR6RtI|9_RLtUQNh}guMV3dq zxA}L3Jk9zCujxa=0&VAsi(bU|GOxBdA1)Bf?ZwhE2Mi zm8#EHt}l^u2pW3v}Ao7}uG%ya{{Vc81{bFB`8dZ@K0)~LRnidE4A;0&@@ zwMERpR$!U;js#m>dEgs95s_(vKdJd6m=g>8Q^1d$XWq-~g2LySW@FgrBhF)-E9b(O zvZ6IM(;(Y0+Kbbx2nvCbaer~Lumx$zcv+fn!L5)$tz!?WyRk{fmv(IcG3X{2Iy#Kc zxr}x6r*Qw3BI}Bh`8ega?5{wv#$DQ^si<9nClcBEHL;xU!qryXs-<0#6tufORTGO( zjX_2~b%ldo`wQIBCXG5y%|~(d=4TC+@BBSmRrYg`wBNC{l1x{nC@A=eUH{5#F;Y9d{@*^-%J*+ARLYxDL~)pVA~#-fZ@U9*|*- z#-`FSrKP*2J?q<7imCby!^?uglNNqLu7sgV>(H6d<2K=z!3726jg{#mw%Eq*Z zN6ZgqsjkI$1zW)@h{_YlVzqE#{B>2e6o8bJ|J!vVUJ@9V9RYN-0BFG$%pHfeDWx7x zGWCn;(+^Gkp@(I5iTFtb)7KaV)Wx2-^htTPvU~5!zfjl9CBD^Fo9BnYtP93`X*Ncgr`13dQfMoM1@owuGK^H*tQ^O1o z{rmuLUp9$MSO@%9nwsRrdP4GE9Xyr{0BaNz`>Eq^?O}j^VyrC^9!p5YYHJ1{uZ&xR z(jflj=cDdM3QY%L2zS+8ekafl$+7z+TJo}KVtua2K2K~P+CJgQt?B@kGSD>N5OtGq zmwNA$nMBdd#&EjTESiBBus@U>A}Y|aV(M*d)=6*ikO&@_!dpHRJEC4jnPKZRa-}XP zS%sy3z)T%D^jR!xZYp3(q?gysB>5y6$@zFbX`-+uqk7wUi{L*Ere;(yxqPz2uELEm zA$c|sO&2vl>d-Rz%&`({={Y2*I&(uwdLHGB8A9xHb(e^j5^cBWh}Ve!*~)y#skSB0 zJW0rUpw6Acr~kbuE{um)ikZZRXfo`>klgSD*TF{5tEGX164r2bt?Vo&(XJ3~zF&tP z>bH;37$5H5`?Zvsu*$IQni+xi?PS3AXhZjakOYAqpVY~oxtx7yzhs-+jn?p2rLnjHM;ucB2rH2+R1gJmPD>5QkX zrRbsn@{?@oljyI>(TVgSX%mg>RgLr+l<@GiIP+KTCyKwyT6+L8W)GL=Ue{Fui$42B zCBOQk92>rj7bb>V+t;sZUqoYfm3VM2{Xqp%Yuaqtq>IYWy$86Gn?N-_R(sPa>AkCm zk2!NSH^`sgkVH912*b+-Qf<5&x>WG&CVG#m^`<@bEI&dhD6rN135dBQo)4&<3jX~< z?EPz8inezp=i6NmPFz#=c_hN(abU-F>1~rB!1bS#uLdq3w5>cBt=`O4(;=W>Ggsjr z+MXpFYdbkWy4TUoyk6nVn7>gR4I72b%o?EYp}yxrftUSqV1v%v+(9bOJ25^sHjbUZ z6OR&qzchw8c3B~`xM}3z4Vk_huRTd3ZutG&c+djQT7hzNNrg4tjoDJgS$n+~fnCzV zZ6r0(zV02ggN5<7nEzm=D4JPjtFwg+q2Bj#F}q+Fe%%UELe9p4&Qr{Xooe}^zn zb-hpi@c^hg_N!nKh+R%+Cse&-d>tKqh7*2g>}%uHTcM29uCzPHw>T7*`~7tI&0g?? zFo$uC7D8o6ceGVV_~?uO z;*N}Y8U|P`VFS6=U%33--I6iHb;*ZsH;~qklf34q(O*h1r{s@+NNov{$G)zlBs6s= zqL}?LxyF8=XLp(M>ou>6xBp|LG@kK(TS*lDbL|)H?5#C&G`GRl3S2?Ori0)TW-}fX-@YBy>#~|ZV%QJ zrh*~utcT)}-0Wy6{mwNU(gNFbV~=&OA*uI}-G-Wdd(}(S7b0jh`CwKI)QQySMZLk& z*nvEIj>n0d***|QWAN|qx51_Mr*jvB1xG}HnId*P^B@~2t4;14&r_O94`L)XxT7G( z0g=+C8e)mDsK5#CZoKO1{C}j(^8*?MLDq8p^kL@@ymSiB!3KJ)WZRcp zXLJ*!+_{D6chz*J3jA$S_W^M%WdnPuI ze?C96rVh;uA~Wi0kVKVqsnWfFR#Gcb``#>U{fOW5rQ2KP8*+mkq4{cB^`t=4PCAd8 zI3%6*tC+ztsc95GEN-3^<`ZA8OJIc?b?~r=BQ+UyV9Q&_<; zNb6JbC5QAAH(6e;&IO^HiWT<3YN$heq3~PPoj$)-7M*P(!kbs3%mU_8ki@dYZBzPc zxO2^~zS)(GOgQou!cuy=A0KJ!x8fM*eus2p6KpxEN4#$YSsbBS5Xmt!s3eV2 z?)8ioN?YBHdo;j=ZkMYuVUel>Hp{c?o1mWQr&LHWo@=<|(F7z}8dRYxCd`9ZJkhEc zVAQ!JFKPufz`nixwDj8$Yp63*F-3u!dJmPj*p41mOtCDOMAs>F!R1qHV{RW4FTq!FJMKaN$KLsl_~sInN`4JxNc66 zdlu5cyFDy?I|eOx7>xns*thl@J{7Hy8+%QZvFI^H+}bs^`JjaQF_98RFJZlCQpuoZ zyCyn*H)J;TD%J{TbpLjz`t8Faj!RyS|Wpm6Ws5L1z zGeQ;>(`ir{^W@NPJBZJ!fWE3$y0((f;~Q&BG8E26W-;U*YiUtE#q8r`!G;JD7ImAs zIA3<0dyG&Qax#vQuBQU`UlNzt7d54`e{aS#TAHqBo0ga!-5C!Iv|TAY_xAP%oa3>C z@+WJVfXeu%ak^IqQkWMwEH=_qr}~l#4i&sgG63nWF7{>^>^w{2tcyO=$@_7FDXQfZ zA1B5X?mfF7?yl6QUz_^4U1(McW4!|JYMF4Ie9Wq#1D#Vq2(Z2TLNei}u;oPorP>X5 zu^H4W6!Vfx^h5@eOlX?(Dw$OeA3*X=?bWl7{Pao@CKs?PDST?qqjtt&hRj%>%qo#y z$NWaudof2=$sWD#tS^lbbUeo-W=ONCczHKJlI^#Uu4$V+88wXVB2RdpVVM`)C;-|V zvq!9@XI0ltb((;ii~FPAq|UV=liRf+b9 zlRi$RC|8Gy(hPbYx(2(a)cyEUpQCKJ#`N!4fS-lYTQT|)qvyjcv_JA4Z<;dmywu4Z zrRPDKe5mQLXQkAI_fLsQ*q1Xj$p|G`bI=ksQTkXB^H&Ub%Zk$JN4z67M_E0NZaqa+ znd=IpIGE=4-hvMoy|?1Qp6vWtOgOn{-}yoYNU-nD*Ui#e420w{h1?@C<>tUgZO{7# zJ_pO~QUW#;S0xI0!=J=98C~wht$;++!{tPhcH>|ghA3)2P9Ptp)0AFZBL`PIU1x_MG6)$Q4a9<_PGXB^jk_bZW$BleZiR3jJHrF&7UL57bVD7 zgaHk!)_X2+bDUq-Jk_o;ko9B?JKLs-`c73G^TTdHabvDZj|hZUB@nsMIu)ik|3FLR zmpw%_0?;HnOGPd3>>2Jlv8ZuD=!&E$^2)WwwcFP zBbrpuHJl4H`@n9OSgA`^7KL!~LL8f5sNC^Su!%Ay3yfTFg(LTP%+}H|7n(?+9fvWN zkgb>Wt2iHraT4;qHf=kB5LlIc*MD)(s_3G zEN|94_@&mN;!s%Xu0;5l*=C4Tpu=ERfa7&fzGifhUj*(U1K{pD&^o_Zn^NTeG4_>l zaV@{!RH4OMq)@b!0>#~}xVsg1cXyT+cXxMpcZcG(xH~NDQry{RZ{^E2=KTe@fa?Zkp&WmfrtwkHq#cq?>{@|HCws^Vep()-`t59p;GvG%kbxsAp!x(W515*HC5t}^cE0ZHUh-V`RhhoTSb814t3E-10aG& z0tKGft3eb<4%BH)eG@u$lAb@XgkBzpiM2E8mXeXT+tBdZymmC8lwz^1UFMy>W}D7; z;R`KV84iJZcy;S{Up?47%Jx)YSx?NrUwk;1+xBvk6MXqnnKt5`8g9sKEM;N3P=5Ap z4n)OafqmXHpVGR$U`TbS$W}GUn^W=XAg-uagQH*ZF;u|uqtd1XnrG6jW~I|nZV}`- zQtc+b{SN)P4OhS*1h`Tfw5lAJG4xY<3r8yrG)t?*-JX9GT|E_|kEwIfFZ^`Wm*?qZ zfQU&!ys9vq$X4M_?^rs=B^uTarM*)>)lyMOJcR|G1My%u#OhYtw{ca=Do8%3a@pe`o6F^ko1MS=`fHE`S4FO<*WQoRI1$J3&vK`lx!YBZ zz|ochqAqD;XL!4D;G-Br{XKL1h$>sv?Q(3-98`mNa;nT^d@iR zIqWXnKw$w(C5UyCztgJWO8t(UH&vG$YmlH|iiEr0frmb9p=ZIZSQ>cbFCTAS!f z&1dQP-i5_yrRBpnJ94%`H(A67Y##M>?Uoz}VDpM>no%ApZclNqB0=#7mPH?&oT3|& z^?kj92Q<2-v)%@9-RM%XIIS=|fBJURkbUsHzzpAeWk(vaH`?(ep805dZ{l%%B-#es z1{oRX3w8Y;aRr1ie7h>d*<`}TB5yg=^Rt*Kh7f9Q845s4jVV2Y4xqdC-zTvj0v|oPL5jk{FWCxO>>4eY0MkH zGo9k%-fMDSlv^iBPdP;Z+0QmNcD&{c746r-%H`+r{l%O?S|g%ucJFMs6We3SJV^P!qz_wdv&Y*Q9lb@Tg#u6?P!F&%C z68KdwY405DM%Nk%r-(l&1+2)MIpoaxJsRfe3Eb+KmE(IV_aGDC5xCzwJfY-n*$X7U ztwGbJW3JU8E3FoD4qzjMgE2m;xgVhhW+@rX#K>%_&n3ce7a^ZA`FM z=F+Z_jN|*@RMTK8JVZUJt1omu*BJ9nDaeYSxqw|&+Hcc960d@>Mj8C0FW7uCxYneJ zGVL^zIkMm}YI9bfG($1bjK{%;c_@k`VF<)BT0G9ht)fHw>HeGUH}$QU(|K0;Huw>G zJc%2jdwWxpusDU<0%89R9wG3sn+Av6miDESKPh=-gGzC_*MSTq%dmwoH2tnY%F0P2 z8m%TVe9H(u{($xgI_KJMVL5?Pjn;-NSWZu*G~fR5)Qel-TQH@BVyWvgJ@Eko6?ms* z+jZ+L%H(GQ|C$fB0@gpQz`__;%>JZh@`}*71N%E1^a^=~SAlxf-NF9sQY*u(spp43cdh}@M5Z@wdzd~5;m!A&gG zO+6mn`3C{$tc*fjNh6V5W?_I}LVPUt_>)m=2iG9%Li7|f9ww59s97g1`JmjfTT-5F znhK%CGO;%=mU1bC1>cV;9THGu0byr4)k`(iDh^iFa`dB-m zrpR6#@KHFS{d^!r0DC3k>@HFJtDU&*1sd^ot&&PQPXeARgw09tAr};7d!<54W+o}1 zASa4tBHUK?!5hmpFg6rA;E7jJQP(6-{nMJei9H%^Nhms2A{mlu_)Li zc-WYZO_SfHHtxiz)O2e|u98u0-|wuR zU;efs;A@nOTE=GDQQjr4fRfK3;K89}?QJ%8KTIa?ILdx3dYblu7aWx&)1h)kd)(|m z*$4=PoKyW6C!@THeUuvGu61)3Z?8WUt}eGMJljNB1&r_KRrtz8p)X2VF`oofHzsvmJA}~U?)vAr!$(i(oD=` zxGU}W40VR9zlM#sXe>h^{vE}cSCsJ~t%aPX>PPmflv@tHuk2Mv>Qel!J6omm)~q`> zG6;FkG9_6ElRt0hq+cR39XDv#c;3EG!^d&<_;d^m;=FC@?u5HKQg9ba&B{t&bX7!k z+!M^US^}ju9?$0S6faor;7el6bkxWk8W`@#*SV``gO-C9)%4;a4AvQR9Rtvn42|MX zr< zC^?;SW7-pOc8aYL?pRD;h$O?el>>Az;bWF?tIZr^$?3`oR1bkwdet%CPU`<(k?d~K5-yJ6%$M)y)3nFH5(8;3b6G|OXq zqPe-o+iPxBb#Xp(G{IVpnw{J1&!5jcmIE9Nj;$4qBWt`KwKV;DeqKlj^X_nozhNL@ zbG?|7sXu!)-ZdxDF)E$2Hx_@qz-^q@-S60`{S<#Xck}^?yj7{ z$vgVCv*;+1$DQpRe!H#LaqHQ+mwlhC#wndubW2_k@aQsWS{4*(hBWr&`vi)ZE6BWj@I-Wy$p% z6ke^HA_|r4(n_J(1%~lDA|xu6Ab>Ma9JF+!TmgEmMNsw1_=0l;oX_p5^WrD} zu2Mcy%hVg^9~Qr(b?pm z{2t9Q%WhYOzbch8Aqnj6ap?@d;@G!S?u!W)cRYI}At-B~A1xm@*Y=;P&r_O=G%)hlT245e zW%*u5I!FXgLmYRJ8tQ@>YS5-^rVKDF6wOi2ZFG zF8?dk#d|C(s)(rK5?V2<$vKglwo3{x!Vep#`_DAVGO&L3z^ya^WRsY_xJ?I{EPv%W z!$v-AR&ATJn<>G3ub|{Ryw4F~coF5a=gHRAvy*TuQO-Vjq8x7C)Q+%bLV)C6P~N-w z>P72PHpUc=#<(P8#rd--h1{+yA@o~rlIhmI@9b?d1=JJ1>r^UDi_mkMUJ6>X~Wy6=oZDNaf?>D6X07ixht>+=i^3ZpH&XrnfFd z)=cz{HCO^G28zYIF_PQ%MW|_jHmP5gw}s>f74_H!<_nj6hJbbi3eb&W*E`9kujEC? zBy$z7kjsP?jYfABYz!Vzs$B+6_HdBv-_>bo- z`(Wrk?HiB`smX|KoJRic={evGw(Z91St5Tnp&nze>eQP5K&MM?Sz~lIIL|m1n(_0_GgE3kuB6FX&8yUNC$ZA?kaXFOV4QMHnH8=R{s{0H z@)TLshm>evvnYk(E?M`~(tFoSmuD{1!ypSkxzY9PM z>1M`9%#&x{OwMg)XA3Qemmk;p=)0wAbHk4w=5I-9z-kjWRk{s~-8R@*H+1ZeV4r;| zom0OoXwj0qW&=xR~jZ}noy`i+2_^o{Y;9DB#|uzu^&k4a`c=kW98t4g8m8+K5(kKzj%SdA{q zX*wk6qm_@pWw)FDMs@bvxQelJ1_N+T%N42!^QAur`M0F%7B~xld!`R^Tb!lw6Z`Eg zM_&y+kPceEuN1JlHmclYMjoiAt*#0ioLbSuweWT1-heSZz46inx##cxx6a&K?e)JTL1~s46Yx zd=p~aXE+L7lAOZ9c(-g1nLqzr-Tl2qx||wMp$GE80WwvUqe<+aLMaZxta;im*mk5x zKj>-M>LYMJ_~0N15%9nB6=VF!ZF8WO(gWh~S9~mLzNn+PLe*mp!DR`bmL%*XWvbnq zU`eVkA4_Z1IKnykNGWcgP6r>FiUBg9mx?)N{xqNRuy1ArAezbG%sf}|CVqj%6`!NU0R)-|EZNw`ydo6m9*A&n!#ehZe(7;K zLB`!z^w>HrYl(BJ2u~)!oOoGd?enezeyOhEwhLt@OcP}1p1<}|3-!?G22RZgcIve9 z`b3ceR)H`Qy(me<=`go8fVMTD52-iXul||j9Ky>I(X_L&)7e+ZcgSO%uFJ;l+%aQ} zEVbPt>|^DS-t0NAuuDVv78)j;2|+x%B_dq^1j`eu zH#nr;hTS9-q>~+Phwy^63d2-eq_F*qUw^U@uq8rOHKOyO|NWmwBYLG zuM1@+W6w;85@%UHt!1i}fC( zNp2L3S~Z+SQtuc1JnPhwD_CZPIXt&$eB>}=SY9muKOK9t3x!I?Z!+{*rM zn9u(Wv&^#Oqa5ucuoC`#d6~=O)J}+hU<}`PO!8fI$x|lOI&mpvM}@Q}GrgiQnJ@yM z|JyRX&9dJ0A4h_;0v5+UkNXg>`fgEmrP=FS?aMjF822lD@pM(Wu7~QWf$E{xQ&y)D zaJ3(hJ-I8>CThIxjRBvFd4Eg^s_GfC9)?_Iwku2Et z2b%nr5j>tAzdAVi8S^<@ILc5bI3cIBTgmjH{wp{p zO0&iZL!b+2ttY0+L7)fj7jwQWb>~_u=xq}ARD+VhJ1i8{;z4JTuu5t*q?z7Af8k&B zXIjF(VC4(yA33GX*UGVCZIIJ7na87f;{8s5m0q~zM*Nq=O<4E0-#G;O(x3-%|0l#F#{(I-H=pMw5-2$Exj59sF~ZVY+-r!g=`8U-bUs^smzdcAvKZ$me--CY?8 z)8W<+CmHbbzAx^zU;okjN|PCOw!kC}?08w>e`ixDGKz=S&-CseExstGqV@P_>}>N! zEp9DPX1uHx{Pyj(VO|Egt2|ZF_G^u%&EbQCytJ1nmzDV?JDa$wSb{r(`zIhuf~S;Q zql5Ni`O8#0Zb+{Vg#OT|=EngGS5zgr?QDRDN30uLG8e&*B0r&bbLk$MaXr2Q&>O1m z_{e}eE%&n}+@4i+5Bt4@reZDoh+KCE&uD_P#Z7M3ZU2kA5srtMWfhBq&6wEnXIO+x z76u@AzTY|tmx-B4E2m4hPsvxD-;DiwD;Y}*HW?Xb{l1R*kU4y)c|r7i7y$bDWc|91 zNJtxLF2E>tv59iK4bZXHGt(1s@7s-_bz0jA{eon;_(_?5`hVX0FU!)wO<-%<1 z5s|saWJ`Aa=F~4u6Z~8ZyBa3>(lj|QZq{r3-U7FJr%#m5IHXqYc9sWqd*I!_uCd>o zsq%B>WFPq9w+`HIopm^8zgxYsrzavWKvh5tc+ekcx+A$RU&%%ZwkMiDpJZ|(~xHs8hVLsiX^20#5|B1qG?AhF6I;x2@)jCqDU5mw z%Gil82MU2}toC008poS24Q8NJg;B!$<&=hS+bbo7X)Q+gl$8n*YF&Z*U(8XzPk?!s z7UO?YwNE2g6dYGM4^vU5&IR7`eF@a@$5@F#%L&T-P1@V`<&5Mhv+4z)SI<-;c>NS}yus27e}Uw*Sk;ei8!9UB6#_cGl#?go3Iy-{g#7#Vf-IdHDnC zDjj)$Jelr1cYJ${%+ECt;nfG!E3c5rsHe7^qqX<>(Y>D_c3)q2;vgP=5Yy!AEBST# zU_C))uKjjn1rU1d=DOtEVuSo8CAT;>u}~>+cnCR*S2^6t!&6RG>l4vaPIap^%I#uvfJhvK$Ho0eWW%8PX^fy3eEkwKU-v-bR<~0=kL`23&1u9x1mK7<6n(WEEKM)?`EbTE`wW^A$5HI<|6RZO?;3(gpY*&SMI=P3g z#dp;^cgkezS1TrEUL#h21oco*ohJG>M5+ungNbwhvq-1&1&aVB9bZi4=lvA|#b43C(GOKC%1!U3{ZMi)YQttAsgA!-MV({>~VT=L+Z=sK_y}PIU z@8{Z|B?$f4G0k{uq5uqbW2i+UykD{dfS@wr_gtno3%V!7_mb3kLtO1PVN`k&Kqdg^ zJ8}uN$2H6v>1KS7wt_)b!VGYeeWm)vVsz|I6_oT*y#dK-Zf<@Qi0XmOs5nG8K+D@` zv3fx0gyIPMQ0VQ;-)`1hte}a`prw$#F4IlWh6!VMXx79b$4ev2ylfKr8Cdx1^TkhL z;y34h7B8suhPP7E$t4!uLpTk+oe+HVSaoi^by2O;Mwpn*59XPtIio>Dm|{c8gev!w z^lm*m&Qo+6dx0|*VQ$xZ6-nEwTEG2mts~3=Q@I8spm^`fAA9ODR+OsS2mBb4XB=E+ z)?JaJRXp8)a)Q6QVuCQTP*cD_e@K6#GLzm1zCMi%SBiifas50dHaLo}B4RFQjrwH8 zcKStSy6LXgwEeO!qe@^vx*5zF)8GE_*Qzj~jr7Su#=e*926w!rT&6}(Pl}P4D3SIp zJnDO|u0r+#Y+;isoYTj)q2c*Vii3~3Ty!*?Dfc;6?$4urWT({D z{G%0D%`?d|IuEnKBH&2*9V?j~GOtVa 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 R;X!9Xs)||)U*yaJ{sp9*UVZ=o literal 0 HcmV?d00001 diff --git a/sidebar-flyout-hover.png b/sidebar-flyout-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..6fed5e997d6639e83fb46564ea697cb148357c16 GIT binary patch literal 124580 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

}j&vxP+}C}jCpv<`r;quW2n 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

SN5G>Jn&uu%n$Cb7T>J3E=Tg$&l}I{( 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

0?~Av-WIq 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%0D%`?d|IuEnKBH&2*9V?j~GOtVa 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 R;X!9Xs)||)U*yaJ{sp9*UVZ=o literal 0 HcmV?d00001