Skip to content

修复卸载扫描回归并参考 Mole 增强清理;支持合并菜单栏排序 - #8

Merged
gentpan merged 1 commit into
mainfrom
codex/issues-4-7-mole
Oct 10, 2026
Merged

gentpan merged 1 commit into
mainfrom
codex/issues-4-7-mole

Conversation

@gentpan

@gentpan gentpan commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

0.6.3 的卸载路径检查将 APFS 的大小写规范化当成重定向,实际目录为 library 时,OpenCode 的资源库残留会从完整清单变成仅应用本体。改为逐级读取当前目录项,恢复大小写兼容,同时拒绝扫描及回收期间的真实符号链接;扫描未完成时显示受阻目录提示。

参考 Mole 的公开目录规则,以 Swift 独立补充 LoginItems 真实身份、完整产品名变体、崩溃报告、WebKit/NSURLSession 子缓存和当前用户临时缓存。OpenCode 配置与缓存列为默认保留的复核项。同 ID 的安装副本或无法确认的安装目录会阻止共用数据回收;保留扫描时的组件身份证据,支持本体移走后的残留重试。

合并菜单栏新增上移、下移排序控件,顺序立即生效、持久化和同步,关闭项目后再开启仍保持位置。

验证:

  • 181 项单元测试通过,含大小写规范化、真实链接、共享目录、副本及扫描失败保护、重试证据、旧设置兼容和扫描竞态。
  • Release 构建与签名验证通过;浅深外观、窄宽详情卡和真实菜单栏排序已离屏检查。
  • 已随 0.6.4(0122) 发布,Apple 芯片版与 Intel 版均已签名并通过 Apple 公证。

Refs #4
Closes #7

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-10T12:41:48.203350Z ee0b5e4 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ee0b5e4add

ℹ️ 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".

Comment on lines 118 to +119
} else if (try? entry.resourceValues(forKeys: [.isDirectoryKey]).isDirectory) == true {
let nested = (try? manager.contentsOfDirectory(at: entry, includingPropertiesForKeys: nil, options: .skipsHiddenFiles)) ?? []
apps += nested.filter { $0.pathExtension == "app" }.compactMap(app(at:))
apps += entries(entry).filter { $0.pathExtension == "app" }.compactMap(app(at:))

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Search all allowed subdirectories for installed copies

When another copy is nested more than one directory below /Applications or ~/Applications, this enumeration never discovers it because it only calls entries once for each top-level folder. validate(_:) permits an app at any depth under those roots, including apps selected by drag-and-drop, so a valid copy such as /Applications/Vendor/Apps/Foo.app can remain installed while uninstalling /Applications/Foo.app; the scan then treats its shared bundle-identifier data as exclusive and selects it for deletion. Recursively enumerate app bundles within the same allowed roots, with appropriate traversal bounds, before concluding that no other copy exists.

Useful? React with 👍 / 👎.

@gentpan
gentpan merged commit 475b1ed into main Oct 10, 2026
1 check passed
@gentpan
gentpan deleted the codex/issues-4-7-mole branch October 10, 2026 12:46
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.

合并显示的场景下能否支持调整图标的顺序

1 participant