You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
M2.14 Browser Files: one verified COMTRADE record per row, compact native grid - #595
Milestone 2 — one logical record, not a raw-file list
Confirmed source-level gap: the existing pinned ARIEC fault-record catalog already groups CFG/DAT/HDR/INF into Iec61850FaultRecordSet with exact RecordId and complete-member proof. ARSAS browser UI was binding Files (raw member file rows) and duplicating file nodes in the left tree.
Optimized consumer-only fix
Keep IedBrowserFileCatalog.Files unchanged as the precise wire/root-file authority, add a precomputed immutableDisplayRows projection: one row per verified engine-declared record plus loose unclassified root entries.
Bundle display identity is record.BaseName, download route retains the exact chosen CFG remote path; ambiguous or incomplete bundles still fail through the existing TryGetRecord gate. Aggregate size & modified time come from engine KnownSizeBytes and LastModifiedUtc, never guesses from extension grouping.
Replace the left Files expandable file tree with one nonexpandable category node. Right panel remains virtualized.
Compact 27px WPF row with vertically centered cells, consistent alternating backgrounds and provided vector geometry for File List. No raster/font asset or protocol changes.
Disable context Download unless the selection is a verified complete native CFG/DAT record.
Add regression for bundle display/size/identity, loose browsing-only entries, no file tree descendants and unchanged exact transfer/download safety.
Boundaries
The source-level FileDirectory/COMTRADE backend remains unchanged. This changes presentation, not relay value or read permissions. No competitor product references are added to the repository. No main, engine pin, writes, capture, or release changes. Stacked on #594; exact-SHA CI + BCUGE field UX acceptance required.
D18 evidence-gated stacked historical retirement, not a new merge, not WPF/engine/release promotion.
Exact HEAD 8d29512f8a3adb2b039b8967ec1f938f40e50f75 remains an RC ancestor (behind=0 vs protected RC 817c3910e8223fa2ac531a4426ada5d2d4bbbe50). All 7 original changed paths exist in the RC. Models/IedBrowserRemoteFile.cs and tests/ARSAS.Tests/M2IedBrowserFilesTests.cs have byte-identical Git blobs at original HEAD and RC, including tests for one record per engine-proven complete CFG/DAT, browse-only unknown files/folders, no duplicate Files tree, ambiguous identity failure, size/completeness integrity and native grid contract. Five other changed files evolved: no blanket source-byte equivalence claim.
Verified actual evolved RC code: IedBrowserFileCatalog.DisplayRows still builds exactly one bundle row per engine-authorized record with IsBundle/BundleMemberCount, excludes verified member paths from raw rows, retains independent raw file provenance, rejects ambiguous paths in TryGetRecord, requires complete record and CFG+DAT for native viewer; newer code additionally handles exact allowed root RIO sidecars. MainWindow.IedBrowser.Files.cs still uses _iedBrowserFileCatalog?.DisplayRows, constrains Download complete record to TryGetRecord, and avoids fabricated file permissions. IedBrowserPresentation still shows Files as one navigation node with the remote inventory in the separate grid; current IedBrowserPresentationTests.cs retains RemoteComtradeFiles_StayInRightGrid_NotDuplicatedInTree and is evolved, not an exact test-blob match.
The existing exact RC SHA Windows/SCL/reference-guard CI passes (runs 40165560413, 40165560386, 40165560409); none rerun now. No real-Ied COMTRADE transport/FAT claim. Decision: close this historical PR as superseded by later integrated RC code; retain issue/release/physical gates, branch and discussion, and leave active owner threads untouched.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Milestone 2 — one logical record, not a raw-file list
Confirmed source-level gap: the existing pinned ARIEC fault-record catalog already groups CFG/DAT/HDR/INF into
Iec61850FaultRecordSetwith exact RecordId and complete-member proof. ARSAS browser UI was bindingFiles(raw member file rows) and duplicating file nodes in the left tree.Optimized consumer-only fix
IedBrowserFileCatalog.Filesunchanged as the precise wire/root-file authority, add a precomputed immutableDisplayRowsprojection: one row per verified engine-declared record plus loose unclassified root entries.record.BaseName, download route retains the exact chosen CFG remote path; ambiguous or incomplete bundles still fail through the existingTryGetRecordgate. Aggregate size & modified time come from engineKnownSizeBytesandLastModifiedUtc, never guesses from extension grouping.Filesexpandable file tree with one nonexpandable category node. Right panel remains virtualized.Boundaries
The source-level FileDirectory/COMTRADE backend remains unchanged. This changes presentation, not relay value or read permissions. No competitor product references are added to the repository. No
main, engine pin, writes, capture, or release changes. Stacked on #594; exact-SHA CI + BCUGE field UX acceptance required.