Skip to content

Code Quality: Organize Windows Core APIs by responsibility - #18

Closed
0x5bfa wants to merge 1 commit into
mainfrom
code-quality/restructure-files-core-windows
Closed

Code Quality: Organize Windows Core APIs by responsibility#18
0x5bfa wants to merge 1 commit into
mainfrom
code-quality/restructure-files-core-windows

Conversation

@0x5bfa

@0x5bfa 0x5bfa commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • Establish Files.Core.Windows as the top-level vertical slice for UI-independent Windows integration.
  • Group implementations physically into AppExtensions, Archives, Changes, Commands, DataTransfer, Imaging, Items, Metadata, Operations, Previews, PropertySheets, and Scheduling, while keeping composition entry points at the slice root.
  • Use the shared Files.Core.Windows namespace throughout the non-interop slice and suppress IDE0130 where the responsibility folders intentionally do not extend the namespace.
  • Relocate native declarations from Files.Core/Interop/Windows to Files.Core/Windows/Interop while preserving their Windows SDK namespaces.
  • Give every non-interop top-level type its own file and give each source-generated COM interface its own interop file. Closely related native enums, structs, and coclass markers remain beside their interface.
  • Update repository consumers and architecture documentation without changing runtime behavior.

Compatibility

This intentionally changes the fully qualified names of public Windows APIs from Files.Core.Storage.Windows and selected Windows-specific types under Files.Core.Capabilities.* and Files.Core.Storage.Archives to Files.Core.Windows.

Consumers of the prerelease ReFiles.Core package must update their using directives and recompile. Native declarations retain their existing Windows.Win32 namespaces, and no compatibility shims are included.

Resolved / Related Issues

Steps used to test these changes

  1. Built Files.Core for Debug and Release x64.
  2. Built Files and Files.Operations for Debug x64.
  3. Built Files.UITests for Debug x64.
  4. Built and ran all x64 Files.UnitTests: 281 total, 278 passed, 3 environment-gated clipboard tests skipped, 0 failed.
  5. Ran the IDE0005 analyzer verification for Files.Core with no required changes.
  6. Verified the 157 non-interop Windows files contain exactly 157 top-level types, each in Files.Core.Windows, and the 21 source-generated COM interfaces each have their own file.
  7. Verified the refactor preserves type declarations, XML documentation, COM ABI ordering and attributes, CRLF line endings, and contains no superseded namespace or interop-path references.
  8. Ran git diff --check and independently reviewed both commits for unintended semantic changes.

CI status

All four matrix configurations compile successfully. Release x64 and both ARM64 jobs pass. Debug x64 reaches the test step and reports the same three native clipboard failures as the current main base commit (0x800401D4 while flushing the hosted runner's OLE clipboard); this refactor does not change those tests or their behavior.

Copilot AI lite review requested due to automatic review settings September 4, 2026 15:03
@0x5bfa

0x5bfa commented Sep 4, 2026

Copy link
Copy Markdown
Owner Author

Follow-up inventory: files with multiple type declarations

Regenerated from the final PR head with syntax-tree analysis. Generated files and bin/obj are excluded. Nested types are shown as Outer.Inner. Result: 56 files, 168 declarations across 371 C# files and 482 declarations; syntax errors: 0.

This is an inventory, not a recommendation to split every entry. This PR gives every public or internal top-level type under non-interop Windows its own file. Its remaining entries below contain nested implementation types. The remaining co-located top-level declarations under Windows/Interop are enums, structs, or coclass markers kept with their relevant COM interface.

Show the complete inventory
  • src/Files.Core/Browsing/BrowseChangeCoordinator.cs (2): class BrowseChangeCoordinator; record struct BrowseQueuedChange
  • src/Files.Core/Browsing/BrowseItemChange.cs (8): record BrowseItemChange; record BrowseItemAdded; record BrowseItemsAdded; record BrowseItemRemoved; record BrowseItemReplaced; record BrowseItemMoved; record BrowseItemsReset; class BrowseItemsChangedEventArgs
  • src/Files.Core/Browsing/BrowseItemPresentation.cs (3): record BrowseItemPresentation; enum BrowseItemPresentationChangeFlags; class BrowseItemPresentationChangedEventArgs
  • src/Files.Core/Browsing/BrowseItemProjection.cs (3): class BrowseItemProjection; class BrowseItemProjection.BrowseItemComparer; class BrowseItemChangeSet
  • src/Files.Core/Browsing/BrowseLocation.cs (6): record BrowseLocation; record FolderLocation; record ArchiveLocation; record HomeLocation; record SearchLocation; record TagLocation
  • src/Files.Core/Browsing/BrowsePrefetchCoordinator.cs (4): class BrowsePrefetchCoordinator; record BrowsePrefetchCoordinator.PrefetchRequest; record BrowsePrefetchCoordinator.PendingThumbnailLoad; record BrowsePrefetchCoordinator.ThumbnailPrefetchResult
  • src/Files.Core/Browsing/BrowsePresentationStore.cs (3): class BrowsePresentationStore; class BrowsePresentationStore.Snapshot; record BrowsePresentationStore.Entry
  • src/Files.Core/Browsing/BrowsePreviewModel.cs (2): class BrowsePreviewModel; record BrowsePreviewModel.PreviewRetryAuthorization
  • src/Files.Core/Browsing/BrowsePreviewSnapshot.cs (2): enum BrowsePreviewStatus; record BrowsePreviewSnapshot
  • src/Files.Core/Browsing/BrowseSession.cs (6): class BrowseSession; record BrowseSession.BrowseNavigationSnapshot; class BrowseSession.NavigationOperation; enum BrowseSession.IncrementalApplyResult; enum BrowseSession.ItemLookupResult; class BrowseSession.BrowseContextState
  • src/Files.Core/Browsing/IBrowseLocationContext.cs (2): interface IBrowseLocationContext; interface IInteractiveBrowseLocationContext
  • src/Files.Core/Browsing/IBrowseSession.cs (2): interface IBrowseSession; interface IInteractiveBrowseSession
  • src/Files.Core/Capabilities/Archives/ArchiveSourceFactory.cs (2): class ArchiveSourceFactory; record ArchiveSourceFactory.ArchiveSource
  • src/Files.Core/Capabilities/CapabilityBuilder.cs (2): class CapabilityBuilder; record CapabilityRegistration<TCapability>
  • src/Files.Core/Capabilities/CapabilityRegistry.cs (2): class CapabilityRegistry; record CapabilityResolution<TCapability>
  • src/Files.Core/Capabilities/Previews/PreviewBlockReason.cs (2): enum PreviewBlockReason; class BlockedPreviewResult
  • src/Files.Core/Capabilities/Previews/PreviewRequest.cs (4): enum PreviewHydrationPolicy; record PreviewRequest; class PreviewTrustAuthorization; enum PreviewTrustPolicy
  • src/Files.Core/Capabilities/Previews/PreviewSourceCombiner.cs (2): class PreviewSourceCombiner; class PreviewSourceCombiner.RoutedPreviewSource
  • src/Files.Core/Capabilities/Previews/PreviewSourceFactory.cs (2): class PreviewSourceFactory; class PreviewSourceFactory.BoundPreviewSource
  • src/Files.Core/Capabilities/Previews/StreamPreviewResult.cs (2): class StreamPreviewResult; class StreamPreviewContentLease
  • src/Files.Core/Capabilities/Properties/PropertySourceCombiner.cs (2): class PropertySourceCombiner; class PropertySourceCombiner.CompositePropertySource
  • src/Files.Core/Capabilities/Properties/PropertySourceFactory.cs (4): interface IBatchedPropertySource; class PropertySourceFactory; class PropertySourceFactory.BoundPropertySource; class PropertySourceFactory.EmptyProperties
  • src/Files.Core/Capabilities/Thumbnails/MemoryThumbnailCache.cs (2): class MemoryThumbnailCache; class MemoryThumbnailCache.CacheItem
  • src/Files.Core/Capabilities/Thumbnails/ThumbnailCacheWrapper.cs (2): class ThumbnailCacheWrapper; class ThumbnailCacheWrapper.CachedThumbnailSource
  • src/Files.Core/Capabilities/Thumbnails/ThumbnailResult.cs (2): enum ThumbnailContentFormat; record ThumbnailResult
  • src/Files.Core/Capabilities/Thumbnails/ThumbnailSourceCombiner.cs (2): class ThumbnailSourceCombiner; class ThumbnailSourceCombiner.FallbackThumbnailSource
  • src/Files.Core/Models/IStorableModelInternal.cs (2): interface IStorableModelInternal; class StorableModelAccess
  • src/Files.Core/Sessions/BrowseNavigationHistory.cs (2): record BrowseNavigationHistorySnapshot; class BrowseNavigationHistory
  • src/Files.Core/Sessions/BrowsePaneSession.cs (3): enum PaneNavigationMode; class BrowsePaneSession; class BrowsePaneSession.NavigationOperation
  • src/Files.Core/Sessions/BrowsePaneSessionFactory.cs (2): interface IBrowsePaneSessionFactory; class BrowsePaneSessionFactory
  • src/Files.Core/Sessions/TabSession.cs (2): enum PaneSplitOrientation; class TabSession
  • src/Files.Core/Storage/Archives/ArchiveMountResult.cs (5): record ArchiveMountResult; record ArchiveMountResult.Success; record ArchiveMountResult.CredentialRequired; record ArchiveMountResult.Unsupported; record ArchiveMountResult.Failed
  • src/Files.Core/Storage/Archives/ArchiveProbeResult.cs (2): enum ArchiveProbeKind; record ArchiveProbeResult
  • src/Files.Core/Storage/Ftp/FtpEntryInfo.cs (2): enum FtpEntryKind; record FtpEntryInfo
  • src/Files.Core/Storage/StorageOperationInterruption.cs (6): enum StorageOperationInterruptionKind; enum StorageOperationInterruptionResponses; enum StorageOperationInterruptionDecision; record StorageOperationInterruption; record struct StorageOperationInterruptionResponse; class StorageOperationInterruptedException
  • src/Files.Core/Storage/StorageOperationRequest.cs (8): record StorageOperationRequest; enum StorageConflictBehavior; enum StorageItemKind; record RenameOperationRequest; record CreateItemOperationRequest; record CopyOperationRequest; record MoveOperationRequest; record DeleteOperationRequest
  • src/Files.Core/Windows/AppExtensions/WindowsFileExplorerAppExtensionCatalog.cs (3): class WindowsFileExplorerAppExtensionCatalog; struct WindowsFileExplorerAppExtensionCatalog.ExtensionVectorAdapter; struct WindowsFileExplorerAppExtensionCatalog.ExtensionAdapter
  • src/Files.Core/Windows/AppExtensions/WindowsShellAppExtensionService.cs (2): class WindowsShellAppExtensionService; delegate WindowsShellAppExtensionService.CommandStringGetter
  • src/Files.Core/Windows/Changes/WindowsShellChangeWatcher.cs (3): class WindowsShellChangeWatcher; class WindowsShellChangeWatcher.Registration; class WindowsShellChangeWatcher.WindowsShellChangeSubscription
  • src/Files.Core/Windows/Imaging/WindowsShellThumbnailBackend.cs (3): class WindowsShellThumbnailBackend; class WindowsShellThumbnailBackend.ThumbnailCacheIdentity; record struct WindowsShellThumbnailBackend.SystemIconCacheKey
  • src/Files.Core/Windows/Interop/HStringStringMarshaller.cs (6): class HStringStringMarshaller; class HStringStringMarshaller.Stateless; ref struct HStringStringMarshaller.ManagedToUnmanagedIn; ref struct HStringStringMarshaller.UnmanagedToManagedOut; ref struct HStringStringMarshaller.UnmanagedToManagedIn; ref struct HStringStringMarshaller.ManagedToUnmanagedOut
  • src/Files.Core/Windows/Interop/IDefViewItemStore.cs (3): enum SET_PROPERTY_STORE_TYPE; struct ITEMGROUP; interface IDefViewItemStore
  • src/Files.Core/Windows/Interop/IDetectionAndSharing.cs (4): interface IDetectionAndSharing; enum DTSH_TYPE; enum DTSH_STATE; enum DTSH_ACTION
  • src/Files.Core/Windows/Interop/IElevatedDiskQuotaUI.cs (2): class CQuotaUIHelper; interface IElevatedDiskQuotaUI
  • src/Files.Core/Windows/Interop/IElevatedNtfsSecurity.cs (2): class CNtfsSecurityExtension; interface IElevatedNtfsSecurity
  • src/Files.Core/Windows/Interop/IItemStore.cs (5): struct ITEMKEY; enum ITEM_FLAGS; enum ITEMSTORE_GETITEMFLAGS; enum GET_PROPERTY_STORE_TYPE; interface IItemStore
  • src/Files.Core/Windows/Interop/IMountPointRename.cs (2): class CMountPointRename; interface IMountPointRename
  • src/Files.Core/Windows/Interop/IMultiObjectElevationFactory.cs (2): class CMultiObjectElevationFactory; interface IMultiObjectElevationFactory
  • src/Files.Core/Windows/Interop/ISharingConfigurationUI.cs (2): class CSharingElevatedFactory; interface ISharingConfigurationUI
  • src/Files.Core/Windows/Items/WindowsItemIdReader.cs (2): class WindowsItemIdReader; record struct WindowsItemIdReader.WindowsFileId
  • src/Files.Core/Windows/Metadata/WindowsPropertyReader.cs (4): class WindowsPropertyReader; record WindowsPropertyReader.PropertyEntry; class WindowsPropertyReader.EmptyProperties; class WindowsPropertyReader.EmptyResults
  • src/Files.Core/Windows/Operations/WindowsStorageOperationHandler.cs (3): class WindowsStorageOperationHandler; record WindowsStorageOperationHandler.ShellOperationOutcome; record WindowsStorageOperationHandler.FileOperationCreation
  • src/Files.Core/Windows/Previews/WindowsPreviewHandlerResolver.cs (3): class WindowsPreviewHandlerResolver; record WindowsPreviewHandlerResolver.CacheEntry; class WindowsPreviewHandlerResolver.TrustedAssociationRegistrationAllowlist
  • src/Files.Core/Windows/PropertySheets/WindowsShellPropertySheetReader.cs (2): class WindowsShellPropertySheetReader; class WindowsShellPropertySheetReader.SecurityPrincipalBuilder
  • src/Files.Core/Windows/PropertySheets/WindowsShellSharingService.cs (2): class WindowsShellSharingService; record struct WindowsShellSharingService.LocalShare
  • src/Files.Core/Windows/Scheduling/WindowsShellScheduler.cs (4): class WindowsShellScheduler; class WindowsShellScheduler.WorkItem; class WindowsShellScheduler.MessagePumpedStaScheduler; class WindowsShellScheduler.WorkItem<T>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The change set is broad and involves large-scale public namespace/API surface relocation across core, app, tests, and docs, warranting final human verification despite passing builds/tests in the description.

Pull request overview

This PR reorganizes the UI-independent Windows Shell/Core integration surface into a new Files.Core.Windows.* vertical slice, updating namespaces/usings across Files.Core, the WinUI host, tests, and architecture docs to match the new layout while aiming to preserve runtime behavior.

Changes:

  • Moved Windows-specific implementations from Files.Core.Storage.Windows (and select Files.Core.Capabilities.* Windows types) into Files.Core.Windows grouped by responsibility (Commands, DataTransfer, Items, Metadata, Operations, Previews, PropertySheets, Scheduling, etc.).
  • Updated application and test projects to consume the new Files.Core.Windows.* namespaces (including removing the unit test global using for the old namespace).
  • Updated Files.Core README and repository/architecture documentation to reflect the new subsystem boundaries and folder structure.
File summaries
File Description
tests/Files.UnitTests/WindowsThumbnailTests.cs Update usings to Files.Core.Windows.*.
tests/Files.UnitTests/WindowsStorageTests.cs Update usings to Files.Core.Windows.*.
tests/Files.UnitTests/WindowsStorageOperationTests.cs Update usings to Files.Core.Windows.*.
tests/Files.UnitTests/WindowsStorageOperationInterruptionTests.cs Update operation namespace import.
tests/Files.UnitTests/WindowsShellSortTests.cs Replace old Windows storage namespace using.
tests/Files.UnitTests/WindowsShellSchedulerTests.cs Add scheduler namespace import.
tests/Files.UnitTests/WindowsShellPropertyPageTests.cs Update usings to Files.Core.Windows.*.
tests/Files.UnitTests/WindowsShellPreviewTests.cs Update preview/item/scheduler usings.
tests/Files.UnitTests/WindowsShellNewMenuTests.cs Update command/scheduler usings.
tests/Files.UnitTests/WindowsShellDragDropTests.cs Update Windows DataTransfer/item usings.
tests/Files.UnitTests/WindowsShellDefaultCommandTests.cs Update command/item/scheduler usings.
tests/Files.UnitTests/WindowsShellContextualCommandTests.cs Update command/item/scheduler usings.
tests/Files.UnitTests/WindowsShellColumnTests.cs Update item/metadata/scheduler usings.
tests/Files.UnitTests/WindowsPropertyTests.cs Update item/metadata/scheduler usings.
tests/Files.UnitTests/WindowsPreviewHandlerRegistrationTests.cs Update preview/item usings.
tests/Files.UnitTests/WindowsPreviewAccessPolicyTests.cs Update preview/item usings.
tests/Files.UnitTests/WindowsIdentityTests.cs Update Windows root/item usings.
tests/Files.UnitTests/WindowsFolderChangeTests.cs Update changes/item/scheduler usings.
tests/Files.UnitTests/WindowsFilesCoreBuilderTests.cs Update builder extensions namespace usage.
tests/Files.UnitTests/GlobalUsings.cs Remove global using of old namespace.
tests/Files.UnitTests/BrowsePreviewModelTests.cs Update preview namespace usage.
tests/Files.UnitTests/ArchiveBrowsingTests.cs Update Windows root/item usings.
tests/Files.UITests/PresentationTests/PreviewPaneViewModelTests.cs Update preview namespace usage.
tests/Files.UITests/PresentationTests/ItemPropertiesViewModelTests.cs Update property sheet namespace usage.
tests/Files.UITests/PresentationTests/BrowsePerformanceTests.cs Update Windows root namespace usage.
tests/Files.UITests/InfrastructureTests/WinUiDataObjectBridgeTests.cs Update Windows DataTransfer/item/scheduler usings.
tests/Files.PresentationTests/ItemActivationServiceTests.cs Update Windows root/commands usings.
src/Files/Views/ToolbarView.xaml.cs Update commands namespace usage.
src/Files/Views/Selection/FolderViewInteraction.cs Update commands namespace usage.
src/Files/Views/RootView.xaml.cs Update preview namespace usage.
src/Files/Views/PreviewPane.xaml.cs Update preview namespace usage.
src/Files/Views/NavigationToolbar.xaml.cs Update DataTransfer namespace usage.
src/Files/Views/ItemContextMenu.cs Update app extensions namespace usage.
src/Files/ViewModels/ToolbarViewModel.cs Update commands namespace usage.
src/Files/ViewModels/PreviewPaneViewModel.cs Update preview namespace usage.
src/Files/ViewModels/NavigationItemLoader.cs Update Windows root namespace usage.
src/Files/ViewModels/FolderBrowserViewModel.cs Update Windows namespace imports.
src/Files/ViewModels/DetailsColumnViewModel.cs Update metadata namespace usage.
src/Files/MainWindow.xaml.cs Update Windows root/app extensions/preview usings.
src/Files/ItemProperties/ToolsPropertyView.xaml.cs Update property sheets namespace usage.
src/Files/ItemProperties/ShortcutPropertyView.xaml.cs Update property sheets namespace usage.
src/Files/ItemProperties/SharingPropertyView.xaml.cs Update imaging/property sheets usings.
src/Files/ItemProperties/SecurityPropertyView.xaml.cs Update property sheets namespace usage.
src/Files/ItemProperties/QuotaPropertyView.xaml.cs Update property sheets namespace usage.
src/Files/ItemProperties/PreviousVersionsPropertyView.xaml.cs Update imaging/property sheets usings.
src/Files/ItemProperties/ItemPropertiesWindow.xaml.cs Update property sheets namespace usage.
src/Files/ItemProperties/ItemPropertiesViewModel.cs Update Windows root/property sheets usings.
src/Files/ItemProperties/ItemPropertiesService.cs Update app extensions namespace usage.
src/Files/ItemProperties/ItemPropertiesFileSystem.cs Update property sheets namespace usage.
src/Files/ItemProperties/HardwarePropertyView.xaml.cs Update property sheets namespace usage.
src/Files/ItemProperties/GeneralPropertyView.xaml.cs Update property sheets namespace usage.
src/Files/ItemProperties/ElevationShieldIcon.xaml.cs Update imaging namespace usage.
src/Files/ItemProperties/DigitalSignaturesPropertyView.xaml.cs Update property sheets namespace usage.
src/Files/ItemProperties/CustomizePropertyView.xaml.cs Update imaging/property sheets usings.
src/Files/ItemProperties/CompatibilityPropertyView.xaml.cs Update property sheets namespace usage.
src/Files/Infrastructure/WinUiShellDropTargetController.cs Update DataTransfer namespace usage.
src/Files/Infrastructure/WinUiDataObjectBridge.cs Update DataTransfer namespace usage.
src/Files/Commands/OpenItemCommandParameter.cs Update commands namespace usage.
src/Files/Commands/Handlers/OpenItemCommandHandler.cs Update Windows root namespace usage.
src/Files/Commands/CommandContext.cs Update commands namespace usage.
src/Files/Commands/AppCommandRegistration.cs Update commands namespace usage.
src/Files/App.xaml.cs Update Windows root namespace usage.
src/Files/Adapters/BrowsePresentationAdapter.cs Update metadata namespace usage.
src/Files/Activation/ItemActivationService.cs Update Windows root/commands namespace usage.
src/Files.Core/Windows/WindowsStorageSource.cs Move namespace to Files.Core.Windows.
src/Files.Core/Windows/WindowsFilesCoreBuilderExtensions.cs Move builder extensions to Windows slice root.
src/Files.Core/Windows/Scheduling/WindowsShellScheduler.cs Move scheduler namespace under Windows slice.
src/Files.Core/Windows/Scheduling/IWindowsShellScheduler.cs Move scheduler interface namespace.
src/Files.Core/Windows/PropertySheets/WindowsVolumeLabelService.cs Move property sheets namespace + imports.
src/Files.Core/Windows/PropertySheets/WindowsShellStorageSettingsService.cs Move property sheets namespace.
src/Files.Core/Windows/PropertySheets/WindowsShellSharingService.cs Move property sheets namespace + imports.
src/Files.Core/Windows/PropertySheets/WindowsShellSecurityService.cs Move property sheets namespace.
src/Files.Core/Windows/PropertySheets/WindowsShellQuotaService.cs Move property sheets namespace.
src/Files.Core/Windows/PropertySheets/WindowsShellPropertySheetReader.cs Move property sheets namespace + imports.
src/Files.Core/Windows/PropertySheets/WindowsShellPropertySheetData.cs Move property sheets namespace.
src/Files.Core/Windows/PropertySheets/WindowsShellPropertyPageEnumerator.cs Move property sheets namespace + imports.
src/Files.Core/Windows/PropertySheets/WindowsShellPropertyPage.cs Move property sheets namespace.
src/Files.Core/Windows/PropertySheets/WindowsShellFolderCustomizationService.cs Move property sheets namespace.
src/Files.Core/Windows/PropertySheets/WindowsShellDriveToolsService.cs Move property sheets namespace.
src/Files.Core/Windows/PropertySheets/WindowsSecurityPrincipalIconProvider.cs Move property sheets namespace + imports.
src/Files.Core/Windows/PropertySheets/WindowsPreviousVersionProvider.cs Move property sheets namespace.
src/Files.Core/Windows/PropertySheets/WindowsFileAttributeService.cs Move property sheets namespace.
src/Files.Core/Windows/Previews/WindowsShellPreviewSessionFactory.cs Move preview factory into Windows slice.
src/Files.Core/Windows/Previews/WindowsShellPreviewSession.cs Move preview session types namespace.
src/Files.Core/Windows/Previews/WindowsShellPreviewResult.cs Move preview result type namespace.
src/Files.Core/Windows/Previews/WindowsShellPreviewLoader.cs Move preview loader namespace + imports.
src/Files.Core/Windows/Previews/WindowsShellPreviewHandlerController.cs Move controller namespace.
src/Files.Core/Windows/Previews/WindowsShellPreviewHandlerAssociation.cs Move association namespace.
src/Files.Core/Windows/Previews/WindowsShellPreviewBlockedException.cs Move exception namespace + imports.
src/Files.Core/Windows/Previews/WindowsPreviewTargetResolver.cs Move resolver namespace + imports.
src/Files.Core/Windows/Previews/WindowsPreviewTarget.cs Move target namespace + imports.
src/Files.Core/Windows/Previews/WindowsPreviewHost.cs Move preview host types namespace.
src/Files.Core/Windows/Previews/WindowsPreviewHandlerResolver.cs Move resolver namespace + imports.
src/Files.Core/Windows/Previews/WindowsPreviewHandlerRegistrationValidator.cs Move validator namespace.
src/Files.Core/Windows/Previews/WindowsPreviewHandlerRegistrationAllowlist.cs Move allowlist namespace.
src/Files.Core/Windows/Previews/WindowsPreviewHandlerFrame.cs Move frame namespace.
src/Files.Core/Windows/Previews/WindowsPreviewHandlerActivationPolicy.cs Move activation policy namespace.
src/Files.Core/Windows/Previews/WindowsPreviewAccessPolicy.cs Move access policy namespace + imports.
src/Files.Core/Windows/Previews/IWindowsShellPreviewSessionFactory.cs Move public preview factory interface namespace.
src/Files.Core/Windows/Previews/IWindowsShellPreviewSession.cs Move public preview session interface namespace.
src/Files.Core/Windows/Previews/IWindowsShellPreviewPolicy.cs Move policy interface namespace + imports.
src/Files.Core/Windows/Previews/IWindowsPreviewTargetResolver.cs Move target resolver interface namespace.
src/Files.Core/Windows/Previews/IWindowsPreviewHandlerResolver.cs Move handler resolver interface namespace.
src/Files.Core/Windows/Previews/IWindowsPreviewHandlerRegistrationAllowlist.cs Move allowlist interface namespace.
src/Files.Core/Windows/Previews/IWindowsPreviewHandlerController.cs Move controller interface namespace.
src/Files.Core/Windows/Previews/IWindowsPreviewHandlerAssociation.cs Move association interface namespace.
src/Files.Core/Windows/Previews/AllowWindowsShellPreviewPolicy.cs Move default policy implementation namespace.
src/Files.Core/Windows/Operations/WindowsStorageOperationHandler.cs Move operations namespace + imports.
src/Files.Core/Windows/Operations/WindowsStorageOperationErrorClassifier.cs Move operations namespace + imports.
src/Files.Core/Windows/Operations/WindowsFileOperationProgressSink.cs Move operations namespace + imports.
src/Files.Core/Windows/Metadata/WindowsShellItemSorter.cs Move metadata namespace + imports.
src/Files.Core/Windows/Metadata/WindowsShellColumnReader.cs Move metadata namespace.
src/Files.Core/Windows/Metadata/WindowsShellColumn.cs Move metadata model namespace.
src/Files.Core/Windows/Metadata/WindowsPropertyReader.cs Move metadata reader namespace + imports.
src/Files.Core/Windows/Items/WindowsStorableSnapshot.cs Move items namespace.
src/Files.Core/Windows/Items/WindowsStorableFactory.cs Move items namespace + imports.
src/Files.Core/Windows/Items/WindowsStorableDescriptor.cs Move items namespace + imports.
src/Files.Core/Windows/Items/WindowsStorable.cs Move items namespace + imports.
src/Files.Core/Windows/Items/WindowsShellItemStore.cs Move items namespace.
src/Files.Core/Windows/Items/WindowsShellItemResolver.cs Move items namespace + imports.
src/Files.Core/Windows/Items/WindowsShellItemArrayFactory.cs Move items namespace.
src/Files.Core/Windows/Items/WindowsItemLocator.cs Move items namespace.
src/Files.Core/Windows/Items/WindowsItemIdReader.cs Move items namespace.
src/Files.Core/Windows/Items/WindowsFolder.cs Move items namespace + imports.
src/Files.Core/Windows/Items/WindowsFile.cs Move items namespace.
src/Files.Core/Windows/Items/ShellReadStream.cs Move items namespace + imports.
src/Files.Core/Windows/Items/ShellItemHelpers.cs Move items namespace + imports.
src/Files.Core/Windows/Items/IWindowsStorable.cs Move items interface namespace + imports.
src/Files.Core/Windows/Items/IWindowsItemIdReader.cs Move items interface namespace.
src/Files.Core/Windows/Imaging/WindowsThumbnailSourceFactory.cs Move imaging namespace + imports.
src/Files.Core/Windows/Imaging/WindowsThumbnailRenderer.cs Move imaging namespace.
src/Files.Core/Windows/Imaging/WindowsShellThumbnailSource.cs Move imaging namespace + imports.
src/Files.Core/Windows/Imaging/WindowsShellThumbnailBackend.cs Move imaging namespace + imports.
src/Files.Core/Windows/Imaging/WindowsShellIconProvider.cs Move imaging namespace.
src/Files.Core/Windows/DataTransfer/WindowsShellSelectionResolver.cs Move DataTransfer namespace + imports.
src/Files.Core/Windows/DataTransfer/WindowsShellDropTarget.cs Move DataTransfer namespace + imports.
src/Files.Core/Windows/DataTransfer/WindowsShellDropSession.cs Move DataTransfer namespace.
src/Files.Core/Windows/DataTransfer/WindowsShellDragSource.cs Move DataTransfer namespace + imports.
src/Files.Core/Windows/DataTransfer/WindowsShellDragDropService.cs Move DataTransfer namespace + imports.
src/Files.Core/Windows/DataTransfer/WindowsShellDragDropData.cs Move DataTransfer model namespace.
src/Files.Core/Windows/DataTransfer/WindowsShellDataObjectFormat.cs Move DataTransfer helper namespace.
src/Files.Core/Windows/DataTransfer/WindowsShellDataObjectFactory.cs Move DataTransfer helper namespace + imports.
src/Files.Core/Windows/DataTransfer/WindowsShellClipboardService.cs Move DataTransfer clipboard namespace + imports.
src/Files.Core/Windows/Commands/WindowsShellNewMenu.cs Move Commands namespace + imports.
src/Files.Core/Windows/Commands/WindowsShellDefaultCommandInvoker.cs Move Commands namespace + imports.
src/Files.Core/Windows/Commands/WindowsShellDefaultCommand.cs Move Commands model namespace.
src/Files.Core/Windows/Commands/WindowsShellContextualCommandService.cs Move Commands namespace + imports.
src/Files.Core/Windows/Commands/WindowsShellContextualCommand.cs Move Commands model namespace + imports.
src/Files.Core/Windows/Commands/WindowsShellContextMenuTarget.cs Move Commands model namespace.
src/Files.Core/Windows/Commands/WindowsShellContextMenuSession.cs Move Commands namespace + imports.
src/Files.Core/Windows/Commands/WindowsShellContextMenuCommandHelper.cs Move Commands helper namespace.
src/Files.Core/Windows/Commands/WindowsShellCommandStorePropertyBag.cs Move Commands COM helper namespace.
src/Files.Core/Windows/Changes/WindowsShellChangeWatcher.cs Move Changes namespace + imports.
src/Files.Core/Windows/Changes/WindowsFolderChangeSource.cs Move Changes namespace + imports.
src/Files.Core/Windows/Changes/FolderChangeSourceFactory.cs Move Changes factory namespace + imports.
src/Files.Core/Windows/Archives/WindowsShellArchiveMount.cs Move archive mount under Windows slice.
src/Files.Core/Windows/Archives/WindowsShellArchiveBackend.cs Move archive backend under Windows slice.
src/Files.Core/Windows/AppExtensions/WindowsShellAppExtensionService.cs Move AppExtensions namespace + imports.
src/Files.Core/Windows/AppExtensions/WindowsShellAppExtensionCommand.cs Move AppExtensions model namespace.
src/Files.Core/Windows/AppExtensions/WindowsFileExplorerAppExtensionCatalog.cs Move AppExtensions helper namespace.
src/Files.Core/Storage/Archives/SevenZip/SevenZipArchiveBackend.cs Update Windows storage source namespace import.
src/Files.Core/README.md Document new Windows slice boundaries.
src/Files.Core/Models/StorableModel.cs Update item type namespace import.
src/Files.Core/Models/FolderModel.cs Update item type namespace import.
src/Files.Core/Composition/FilesCoreRuntime.cs Update preview namespace imports.
src/Files.Core/Composition/FilesCoreBuilder.cs Update preview namespace imports.
src/Files.Core/Composition/ArchiveFilesCoreBuilderExtensions.cs Update archive backend namespace import.
src/Files.Core/Capabilities/Previews/PreviewRequest.cs Update item context namespace import.
src/Files.Core/Capabilities/Archives/ArchiveSourceFactory.cs Update Windows source/item imports.
src/Files.Core/Browsing/FolderBrowseLocationContext.cs Update item/metadata namespace imports.
src/Files.Core/Browsing/BrowsePreviewModel.cs Update preview namespace import.
docs/subsystems/windows-shell.md Update responsibilities/boundaries documentation.
docs/development/repository-layout.md Update repo layout docs for Windows slice.
Review details
  • Files reviewed: 173/173 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@0x5bfa
0x5bfa force-pushed the code-quality/restructure-files-core-windows branch from efb6ca2 to 9ff77a8 Compare September 5, 2026 02:08
@0x5bfa

0x5bfa commented Sep 5, 2026

Copy link
Copy Markdown
Owner Author

Squashed the PR commits and applied the resulting change directly to main as e9a544fed; closing this PR.

@0x5bfa 0x5bfa closed this Sep 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants