Release v2.4.17#5582
Conversation
Back-merge v2.4.16 from main into develop
--- updated-dependencies: - dependency-name: Microsoft.Extensions.Options dependency-version: 10.0.9 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
--- updated-dependencies: - dependency-name: GitVersion.MsBuild dependency-version: 6.8.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…ild-6.8.0 Bump GitVersion.MsBuild from 6.7.0 to 6.8.0
…sions.Options-10.0.9 Bump Microsoft.Extensions.Options from 10.0.7 to 10.0.9
--- updated-dependencies: - dependency-name: GitVersion.MsBuild dependency-version: 6.8.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
--- updated-dependencies: - dependency-name: Microsoft.Net.Compilers.Toolset dependency-version: 5.6.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
--- updated-dependencies: - dependency-name: Spectre.Console dependency-version: 0.57.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [gittools/actions](https://github.com/gittools/actions) from 4.5.0 to 4.7.0. - [Release notes](https://github.com/gittools/actions/releases) - [Commits](GitTools/actions@v4.5.0...v4.7.0) --- updated-dependencies: - dependency-name: gittools/actions dependency-version: 4.7.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…ild-6.8.1 Bump GitVersion.MsBuild from 6.8.0 to 6.8.1
…ompilers.Toolset-5.6.0 Bump Microsoft.Net.Compilers.Toolset from 5.3.0 to 5.6.0
…-0.57.2 Bump Spectre.Console from 0.57.1 to 0.57.2
…ls/actions-4.7.0 Bump gittools/actions from 4.5.0 to 4.7.0
…Inaccessible change (#5581) The switch to EnumerateDirectories/EnumerateFileSystemInfos with EnumerationOptions { IgnoreInaccessible = true } (from the #5544 follow-up) kept the framework default AttributesToSkip = Hidden | System, so the file dialog silently filtered out hidden/system entries — including dotfiles on Unix, which .NET marks as Hidden. The GetDirectories ()/GetFileSystemInfos () calls it replaced never skipped them. - Clear AttributesToSkip (FileAttributes.None) so hidden/system entries stay visible while still ignoring inaccessible ones. - Fall back to the eager listing methods when the IFileSystem implementation throws NotSupportedException for the non-default AttributesToSkip (e.g. System.IO.Abstractions.TestingHelpers MockFileSystem). - Add regression tests covering the enumeration options, the fallback, and hidden/system files via MockFileSystem. Flagged by Codex review on #5580. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: da4d9a2ebb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| } | ||
| catch (Exception) | ||
| { | ||
| return false; // treat an unreadable entry as not a reparse point / not expandable |
There was a problem hiding this comment.
Fail closed when reparse status is unreadable
When Attributes throws for an entry that is actually a symlink/junction, returning false makes both CanExpand/GetChildren and FileDialog.SearchState treat the entry as safe to traverse, so an unreadable reparse point can still be followed and recreate the directory-cycle risk this guard is meant to prevent. In this error path it is safer to treat the status as reparse/unknown and not expand it.
Useful? React with 👍 / 👎.
…lision (#5583) Two fixes flagged on release PR #5582: 1. Codex CR feedback: FileSystemTreeBuilder.IsReparsePoint returned false when reading Attributes throws, so an unreadable symlink/junction was treated as safe to traverse — recreating the directory-cycle risk the guard exists to prevent. Now fails closed (treats unreadable status as a reparse point), so CanExpand/GetChildren and FileDialog.SearchState do not traverse it. 2. CI failure (Parallel Unit Tests, windows): FileDialog's ctor crashed with "A binding for Ctrl+P exists" when PopoverMenu.DefaultKey read Ctrl+P — a key TableView already binds to Command.Up. Root cause was MecDottedKeyTests mutating the process-wide PopoverMenuSettings.Defaults while running in parallel with view-constructing tests; but the crash is also reachable by real users who configure PopoverMenu.DefaultKey to an already-bound key. - FileDialog/CharMap now use KeyBindings.ReplaceCommands instead of Add for the context-menu key (the user's configured key wins). - The "StaticSettingsTests" xUnit collection now has a CollectionDefinition with DisableParallelization = true, so the five Mec* test classes that swap static settings facades no longer race the rest of the suite. Tests: fail-closed IsReparsePoint regression test; FileDialog/CharMap ctor no-throw tests under a colliding DefaultKey. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Closing to recreate the release from develop with the CI fix and Codex CR feedback addressed (#5583). |
Release v2.4.17
Version:
2.4.17NuGet Package:
Terminal.Gui 2.4.17What happens when this PR is merged
v2.4.17main→developwill be openedChecklist
2.4.17