Repository navigation
Releases: SonghaiFan/leftopen
Release list
LeftOpen v0.5.8
Thank you, everyone, for using this app! Wishing you a happy day and happy coding. I hope finding this Easter egg makes you smile. This Easter egg will be removed in the next version. Thank you!
感谢大家使用这个应用!祝大家每天开心、开发愉快,也希望发现这个彩蛋能让你开心一下。这个彩蛋会在新版本中移除,谢谢!
Fix
- Made the dancing dog smaller and fixed its overlap with the text on the “No longer listening” page.
- 缩小了跳舞小狗,修复了它在“已不再监听”页面遮挡文字的问题。
LeftOpen v0.5.7
Thank you, everyone, for using this app! Wishing you a happy day and happy coding. I hope finding this Easter egg makes you smile. This Easter egg will be removed in the next version. Thank you!
感谢大家使用这个应用!祝大家每天开心、开发愉快,也希望发现这个彩蛋能让你开心一下。这个彩蛋会在新版本中移除,谢谢!
LeftOpen v0.5.6
中文
- 固定地址设置自动避让被占用的 HTTPS 端口,记住所选端口,并在授权取消后的重试中复用已有服务配置。
- 新增固定地址开关和地址服务健康状态;关闭时保留项目绑定,不终止项目服务器。
- 设置重新整理为「通用」「端口」「项目」「关于」,支持跟随系统、浅色和深色外观。
- 「隐藏端口」输入更紧凑,端口数字与菜单面板样式一致;声音设置位于「通用」。
- 卸载入口补充完整清理范围说明。
- 传统 macOS 图标增加透明外边距,保留现有 Logo,并增加全部尺寸与最终包图标检查。
- 包含此前 beta 的 Intel Mac 内置 Node 签名兼容修复。
图标资源和打包检查已通过;macOS 15 或更旧系统中的 Launchpad/Dock/Finder 视觉对比仍在 #16 跟踪。
English
- Fixed-address setup automatically avoids occupied HTTPS ports, remembers the selected port, and reuses the installed configuration when retrying after cancelled authorization.
- Added a fixed-address switch and address-service health. Turning addresses off preserves bindings without terminating project servers.
- Settings now use General, Ports, Projects and About, with System/Light/Dark appearance.
- Compact Hidden Ports editing shares the menu panel's port-number style. Sounds are in General.
- Clarified the clean-uninstall scope.
- Added transparent margins to legacy macOS icons while preserving the existing logo, with checks for every icon size and the final bundle.
- Includes the Intel bundled-Node signing compatibility fix previously shipped in beta.
Icon resources and packaging are verified; visual comparison in Launchpad/Dock/Finder on macOS 15 or earlier remains tracked in #16.
LeftOpen v0.5.5
修复与改进
- 修复固定地址安装中断后旧服务残留、停止状态确认过早等问题,保留服务身份和目录安全检查。
- 优化 App / Homebrew 卸载流程:登录启动项已不存在时不再阻断;原始 CA 文件缺失时可清理已确认归属的服务,但不会猜测删除钥匙串证书,并明确提示残留风险。
- 设置及卸载错误增加可展开、可复制的技术详情,包含阶段、系统错误码和版本信息,不复制个人路径、命令参数或证书内容。
- 恢复端口白名单:在「设置 → 通用」或端口右键菜单中管理。支持标签、多端口输入、去重与删除;白名单仅影响列表、搜索、计数及变化提示音,不停止服务或改变进程保护。
- 保持原有详情面板布局,不包含另外的详情页重新设计。
Fixes and improvements
- Recover safely identified address services left by interrupted installations and verify their final shutdown state.
- Make login-item removal idempotent in both app and Homebrew cleanup. Missing original CA files no longer block verified service cleanup; unidentified keychain certificates are left untouched with an explicit warning.
- Add copyable, privacy-filtered setup and uninstall diagnostics.
- Restore the port allowlist in General settings and port context menus. Allowlisted ports are hidden from display/search/counts and change sounds; services continue running.
Universal macOS app and CLI (Apple Silicon + Intel), macOS 14 or later.
LeftOpen v0.5.4
中文
- 为普通
brew uninstall leftopen增加自动清理钩子:移除 App 前,清理 LeftOpen 地址服务、匹配的本地证书、地址记录、设置与缓存,保留项目文件。 - 升级、重装和自动依赖清理不会运行数据清理。取消 macOS 授权或清理失败会中止卸载,保留 App 供重试。
- 清理入口不会启动菜单栏或递归调用 Homebrew;App 内卸载与终端卸载共用清理逻辑。
使用前: 请退出 LeftOpen,并停止通过它启动的项目。先执行 brew upgrade --cask songhaifan/tap/leftopen 安装 0.5.4,再使用普通卸载命令。Homebrew 保存安装时的 cask 元数据,因此仅 brew update 无法为旧安装补上新钩子。
验证覆盖自动测试、真实 Homebrew 钩子调度(拦截所有清理命令)及 macOS 构建。真实证书/服务删除、授权取消重试和完整卸载重装尚未在一次性账户完成端到端验收。
English
- Add automatic cleanup before explicit
brew uninstall leftopen, preserving project files. - Preserve state during upgrades, reinstalls and automatic dependency removal. Cancellation or cleanup errors abort package removal.
- Share cleanup between the app and Homebrew without starting the menu bar or recursively invoking brew.
Quit LeftOpen and stop projects launched by it first. Upgrade to 0.5.4 to install the new cask receipt; brew update alone does not retrofit hooks into older installed receipts.
Validation includes automated tests, real Homebrew dispatch with external commands intercepted, and macOS builds. Destructive certificate/service removal and full uninstall/reinstall still need disposable-account end-to-end validation.
Full changelog: v0.5.3...v0.5.4
LeftOpen v0.5.3
中文
- 新增「设置 → 关于 → 卸载 LeftOpen」:确认后清理地址服务、对应本地证书、地址记录和设置,保留项目文件。下载版将 App 移到废纸篓,Homebrew 版通过 Homebrew 卸载。
- 修复固定地址设置中的证书授权流程:由 LeftOpen 在当前用户会话中发起 macOS 授权,仅设置 SSL 信任,不再通过提权脚本添加用户证书信任。
- 修复旧安装的用户目录所有权、证书缺失或不可访问时的恢复,以及 launchd 服务被禁用时的安装顺序。
- 无法安全识别项目的全局安装服务会显示固定地址不可用的原因;保留系统目录、符号链接和进程身份保护。
验证:合并提交通过 macOS CI、Universal 构建及自动回归测试。真实用户授权弹窗、取消后重试及完整卸载/重装流程仍需实机验证。
English
- Add an explicit Settings → About → Uninstall LeftOpen action to remove its address service, matching local certificates, saved addresses and settings while preserving project files. Downloaded apps go to Trash; Homebrew installations are removed through Homebrew.
- Request SSL-only local certificate trust from the interactive app user session instead of an elevated trust script.
- Repair legacy user-directory ownership, recover from missing or inaccessible certificates, and enable disabled launchd services before installation.
- Explain why fixed addresses are unavailable for globally installed services without a safely identified project, while retaining existing path and process-identity protections.
Validation: the merged commit passed macOS CI, Universal compilation and automated regression tests. Native authorization prompts, cancellation/retry and complete uninstall/reinstall still require hands-on validation.
Full changelog: v0.5.2...v0.5.3
LeftOpen v0.5.2
Fix local HTTPS certificate authorization from the macOS app (#9).
- Request certificate trust through a macOS administrator authorization dialog instead of a terminal-only fallback.
- Show separate messages for cancelled and timed-out authorization.
- Verify SSL trust after authorization before enabling fixed addresses.
If setup previously failed, update and retry Settings → Projects → Fixed addresses → Set Up / Repair.
The affected user's macOS 15.7.5 environment still needs confirmation; #9 remains open for feedback.
LeftOpen v0.5.1
Full Changelog: v0.5.0...v0.5.1
LeftOpen v0.5.0
Full Changelog: v0.4.3...v0.5.0
LeftOpen v0.4.3
What's changed
- Project servers launched with Python or another runtime bundled inside an app are now attributed to the project. For example, a Python server using Xcode's Python no longer appears as an Xcode-owned port.
- Settings are grouped by purpose. The confusing “Ignored Ports” option has been removed; previously hidden ports appear again.
- Sound effects now respond to ports opening and closing, including changes outside LeftOpen. The first scan stays silent.
Full changelog: v0.4.2...v0.4.3