From 34874071319e6d668a170471302fe9d5d22ace17 Mon Sep 17 00:00:00 2001 From: Aaron Liu Date: Sat, 9 May 2026 14:14:50 +0800 Subject: [PATCH] fix(fts): context menu inconsistently shown items caused by missing capability bits in file traversing (fix #3385) --- pkg/filemanager/fs/dbfs/file.go | 4 ++++ pkg/filemanager/fs/dbfs/manage.go | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/pkg/filemanager/fs/dbfs/file.go b/pkg/filemanager/fs/dbfs/file.go index 9d9d753c..762c3dfd 100644 --- a/pkg/filemanager/fs/dbfs/file.go +++ b/pkg/filemanager/fs/dbfs/file.go @@ -372,6 +372,10 @@ func (f *File) Recycle() { f.Parent = nil f.OwnerModel = nil f.IsUserRoot = false + f.CapabilitiesBs = nil + f.FileExtendedInfo = nil + f.FileFolderSummary = nil + f.disableView = false f.mu = nil filePool.Put(f) diff --git a/pkg/filemanager/fs/dbfs/manage.go b/pkg/filemanager/fs/dbfs/manage.go index acec701a..3f97abf6 100644 --- a/pkg/filemanager/fs/dbfs/manage.go +++ b/pkg/filemanager/fs/dbfs/manage.go @@ -742,8 +742,14 @@ func (f *DBFS) TraverseFile(ctx context.Context, fileID int) (fs.File, error) { rootUri = newTrashUri(root.Name()) } + navigator, err := f.getNavigator(ctx, rootUri) + if err != nil { + return nil, fmt.Errorf("failed to get navigator for root file: %w", err) + } + root.Path[pathIndexRoot] = rootUri root.Path[pathIndexUser] = rootUri + file.CapabilitiesBs = navigator.Capabilities(false).Capability return file, nil }