Skip to content

Releases: funnythingfunnylove/Surge-Shallow

Surge Shallow 2.2.2

Choose a tag to compare

@funnythingfunnylove funnythingfunnylove released this 24 Jul 08:28

让 Surge 更好用,一键管理多端配置与模块

v2.2.2 把规则源、Profile、Proxy 与 Module 的管理流程进一步收拢到一个原生 macOS App,并补齐更直观的一键配置与页面说明。

主要更新

  • 新增四种“一键规则集”:整体白名单、整体黑名单、国内白名单、国内黑名单。预设组合 Loyalsoldier 与 Sukka,按 手工规则 → non_ip → ip → FINAL 安装,并保留用户手工规则的最高优先级。
  • 新增手工规则源:可直接编辑多条 Surge 规则,选择内联合并或生成独立 .dconf;独立文件带来源所有权标记、文件名冲突和非受管文件防覆盖保护。
  • 修正 Surge Ruleset 语义:原生远端 Ruleset 始终保留为轻量 URL 引用,由 Surge 自行加载,不会被 Surge Shallow 下载、缓存或加入定时刷新。
  • 重构 Profile 编辑器:General 与平台差异使用分类目录、布尔/枚举/文本控件和自定义键值,公共配置与 macOS / iOS 差异更清晰。
  • 改进规则源、Profiles、模块和设置页面的原生 macOS 26 界面;“更新”文案统一为更准确的“合并生成”。
  • 移除模块设置中的独立“关于”,统一并入 Surge Shallow 设置末尾;新增开源许可、第三方声明与感谢。
  • README 全面重写,加入新版 Slogan、五张实际页面截图、三步上手、生成流程、安全说明和下载隔离处理指南。
  • iCloud 冲突加载增加短暂冲突等待;预览与缓存支持测试隔离,避免测试触及真实用户目录。

安装

  1. 下载 Surge-Shallow-2.2.2-macOS.zip
  2. 解压后,把 Surge Shallow.app 移入 /Applications
  3. 打开 App,导入现有 Profile 或添加规则源,然后点击“合并生成”。

Release 使用 ad-hoc 代码签名,尚未经过 Apple notarization。如果 macOS 因下载隔离属性阻止启动,请先确认文件来自本 Release 并核对下方 SHA-256;确认无误后执行:

sudo xattr -rd com.apple.quarantine "/Applications/Surge Shallow.app"

请勿把路径改成整个 /Applications 或下载目录。Surge Shallow 自身运行时不需要管理员权限。

验证

  • swift test:146 项执行,1 项发布后联网资产测试按默认条件跳过,0 失败。
  • swift build -c release -Xswiftc -warnings-as-errors:通过。
  • 最终 App 与 ZIP 解压副本均为 2.2.2 (19),并通过 codesign --verify --deep --strict
  • ZIP 完整性检查通过,模块资源 Bundle、Web 管理资源、Assets.car 与 App Icon 均已包含。
  • 使用 --verification-mode 完成总览、规则源、一键规则集、模块和设置页面验收;5 个真实 iCloud 管理文件在前后哈希完全一致。

下载校验

  • 文件:Surge-Shallow-2.2.2-macOS.zip
  • 大小:25,243,162 字节
  • SHA-256:70fc5cff442957d10a231681b60db66a20045b43c8636342385192dff029ed50

Surge Shallow 2.2.1

Choose a tag to compare

@funnythingfunnylove funnythingfunnylove released this 23 Jul 14:44

关键修复

  • 修复点击“立即更新并重启”后一直卡在“即将重新启动”的问题。更新器现在会先关闭更新日志 Sheet,确认窗口不再挂载 modal sheet,再请求 AppKit 退出。
  • 如果旧版本仍未退出,安装 helper 会先给应用 5 秒优雅退出时间,再只针对已经核验实际可执行路径的精确 PID 依次使用 SIGTERM 和 SIGKILL 兜底。
  • 新增进程身份保护:PID 对应的可执行文件发生变化、lsof 枚举异常或身份无法确认时,更新会失败关闭,不会继续替换 App。
  • 新增多实例保护:普通路径、带参数或符号链接启动的第二实例都会被识别;目标 App 移到备份后还会持续复扫,并在复制前进行最终扫描。发现竞态实例时会原样回滚旧 App,绝不开始覆盖。
  • 加固软件更新测试隔离,临时目录、Application Support、UserDefaults 和网络桩均使用独立测试范围,不会启动真实 App 或修改用户的 Surge 配置。

安装提示

v2.2.0 自身仍包含本次修复前的更新器,因此从 v2.2.0 点击更新可能停在“即将重新启动”。请手动下载本次 ZIP,退出 Surge Shallow 后将 App 替换到 /Applications。完成这一次手动升级后,从 v2.2.1 开始后续应用内更新可正常使用。v2.1.0 及更早版本同样需要手动安装。

验证

  • swift test:120 项测试完成,默认跳过 1 项正式 GitHub Release 联网测试,0 失败;Release 发布后该联网测试已单独运行并通过。
  • 软件更新专项 6 条真实进程回归通过,包括 modal Sheet 状态、TERM 到 SIGKILL、符号链接实例、枚举失败关闭、移动后竞态回滚和复制前最终扫描。
  • Release 构建通过 warnings-as-errors。
  • 打包应用与 ZIP 解压后的应用均为 2.2.1 (18),并通过 codesign 深度严格校验。
  • /Applications 中的最终 App 已使用 --verification-mode 实际启动,设置页显示 2.2.1 (18),Command-Q 正常退出。
  • relay.json、modules.json、settings.json、script-hub-state.json 和 update-history.json 在 GUI 验收前后哈希完全一致。
  • 已从公开 Latest Release 重新下载资产;远端大小与 GitHub digest 均和本地 ZIP 完全一致。

下载与校验

下载 Surge-Shallow-2.2.1-macOS.zip,解压后将 Surge Shallow.app 移入 /Applications。

SHA-256:726ca1f6e5408c302fecab4c4d0aafc30ebc40f2619cabe19ea7f8beff73ec14
文件大小:25,149,859 字节。

Surge Shallow 2.2.0

Choose a tag to compare

@funnythingfunnylove funnythingfunnylove released this 23 Jul 13:19

主要更新

  • 新增 Surge Shallow 软件自动更新机制:启动后默认检查 GitHub 最新正式 Release,并在持续运行期间每 6 小时检查一次。
  • 新增“Surge Shallow → 检查更新…”、菜单栏快捷入口和“设置 → 软件更新”入口;发现新版本后会展示版本、发布时间、更新包大小和完整 Markdown 更新日志。
  • 支持一键下载、校验、替换并重新启动应用。安装前会核对 Release Asset 大小、GitHub SHA-256、Bundle ID、版本号和代码签名完整性。
  • 更新 /Applications 中的应用时支持 macOS 管理员授权;从 App Translocation 或只读磁盘映像运行时会提示先移动到本机磁盘。
  • 加入完整回滚保护:原应用先保留为备份,新版本稳定启动并回传确认后才清理;启动、签名、退出或确认超时会终止新进程并恢复旧版本。
  • 主窗口改为单实例,关闭后可由检查更新入口重新创建,不会产生重复窗口或重复更新弹窗。
  • 更新成功、失败回滚或无法恢复的结果会在应用重新启动后明确提示。
  • README 补充软件更新入口、校验范围和安装行为说明。

从 v2.2.0 开始,后续版本可直接在 App 内查看更新日志并一键更新。v2.1.0 及更早版本仍需手动下载本次安装包。

验证

  • swift test:113 项测试完成,0 失败;默认跳过的真实 GitHub Release 联网测试已单独运行通过。
  • Release 构建通过 -warnings-as-errors
  • 打包应用与归档解压后的应用版本均为 2.2.0 (17)
  • 打包应用与解压后的应用均通过 codesign --verify --deep --strict
  • ZIP 通过完整性检查,并包含正式 Accent Asset、模块资源 Bundle 和 Web 管理资源。
  • 解压后的正式 App 已使用 --verification-mode 实际启动;受管配置文件哈希前后保持一致。

下载与校验

下载 Surge-Shallow-2.2.0-macOS.zip,解压后将 Surge Shallow.app 移入 /Applications

SHA-256:

6cb7784b2eb4b4b8e4416db6a0cdb4bd77a3348d3570e817dc17fcec51c864be

Surge Shallow 2.1.0

Choose a tag to compare

@funnythingfunnylove funnythingfunnylove released this 23 Jul 11:10

主要更新

  • 侧边栏新增软件运行状态区域,集中展示规则更新状态、最后合并时间、已启用规则源、规则数量及模块数量;关键数字统一使用 App 强调色。
  • Profiles 的公共配置、macOS 与 iOS/iPadOS 卡片现在均可折叠和展开,并默认保持折叠,让页面更紧凑。
  • 模块设置仍位于“设置 → 模块管理”,但原本需要进入“模块设置…”二级页面的选项已直接放到模块管理区域,减少中转层级。
  • 修复“跟随系统”显示模式在从浅色或深色切回后不生效的问题;主窗口、菜单栏与设置窗口会一起恢复跟随 macOS。
  • 统一主侧栏、Proxy、模块、按钮、开关、分段控件和统计数字的强调色;成功、警告和失败状态继续保留语义色。
  • 继续收紧 Proxy 与模块分栏的尺寸约束,修复点击 Proxy 或在各 Tab 间切换时窗口位置发生偏移的问题。
  • 模块列表移除底部更新提示,并让列表、空状态和选中样式与规则源页面保持一致。
  • README 新增软件截图,并补充对 EEliberto/SurgeRelay-macOS 项目及作者的感谢与许可说明。

验证

  • swift test:105 项测试全部通过。
  • Release 构建通过 -warnings-as-errors
  • 应用版本与归档解压版本均为 2.1.0 (16)
  • 打包应用与解压后的应用均通过 codesign --verify --deep --strict
  • ZIP 已通过完整性检查,包含正式 Accent Asset、模块资源 bundle 与 Web 管理资源。

下载与校验

下载 Surge-Shallow-2.1.0-macOS.zip,解压后将 Surge Shallow.app 移入 /Applications

SHA-256:

b959755daef6ef3d91334f0f42481a6d477204f5e25ea96400c26bf7e68313c6

Surge Shallow 2.0.0

Choose a tag to compare

@funnythingfunnylove funnythingfunnylove released this 23 Jul 02:48

主要更新

  • SurgeRelay-macOS 的模块管理能力整合为 Surge Shallow 原生功能:共用同一应用生命周期、侧边栏、设置、菜单栏和运行控制器,不再保留第二套 App 壳。
  • 支持 Surge、Loon、Quantumult X 模块来源,提供格式识别、Script-Hub 转换、可视化编辑、参数发现、脚本/策略/规则/MITM 覆盖、冲突处理和多平台启用排序。
  • 支持生成稳定的合并模块与单模块产物,并提供 iCloud、私有 GitHub、Cloudflare 稳定地址、Web 管理 PWA 和 Surge Ponte 管理能力。
  • 规则源默认改为紧凑“外部 Ruleset 引用”:最终 Profile 只保留 RULE-SET,URL,策略 及官方参数,不下载、展开或执行内容级去重,显著减小配置文件体积。
  • 导入现有 Profile 时,HTTP(S) RULE-SET 保持为外部引用;普通内联规则继续按原顺序保留。旧 relay.json 中没有新字段的来源继续使用原有内联合并方式,避免静默改变既有配置。
  • 统一规则源与模块列表布局,修复 Tab 切换时的分栏位置偏移,并移除模块列表底部更新提示卡。

致谢与许可

特别感谢 EEliberto/SurgeRelay-macOS 项目及其作者公开的源码与设计积累。模块管理功能基于上游 commit b19d0dd6d6b9593be9cdf01c578de76c55d43150,依照 Apache License 2.0 进行整合和适配;完整许可已包含在源码与应用发布说明中。

验证

  • swift test:97 项测试全部通过。
  • Release 构建通过 -warnings-as-errors
  • 打包应用与解压后的应用均通过 codesign --verify --deep --strict
  • 紧凑 Ruleset 的 macOS 与 iOS Profile 均通过安装版 Surge CLI --check
  • Release 归档已通过完整 ZIP 校验,包含模块资源 bundle,应用版本为 2.0.0 (15)

下载与校验

下载 Surge-Shallow-2.0.0-macOS.zip,解压后将 Surge Shallow.app 移入 /Applications

SHA-256:

d5de9c3c23d2593d3d599289189ff6d7092b4a02c0299ea6ce0e195b00f36b6e

Surge Shallow 1.7.0

Choose a tag to compare

@funnythingfunnylove funnythingfunnylove released this 22 Jul 08:24

新功能

  • 新增“跟随系统 / 浅色 / 深色”三档外观,主窗口、设置、弹窗与菜单栏统一应用;外观偏好只保存在本机,不会写入 Surge iCloud 配置。
  • 全新 macOS 26 原生界面,以克制的 Liquid Glass 导航和实体配置 Surface 改善层级、对比度与可读性。
  • 新增完整 Surge Profile 导入:迁移前展示 General、Proxy、Proxy Group、规则、FINAL、平台差异及高级段摘要,确认前不写入,应用后不自动发布。
  • 原生支持远端 Surge Ruleset URL,以及完整 RULE-SET,URL,策略,no-resolve,extended-matching 指令粘贴。
  • 导入 Profile 时,每条 HTTP(S) RULE-SET 会按原规则优先级拆成独立、可排序、可缓存的规则源;LAN、SYSTEM 等内建 Ruleset 继续作为内联规则保留。
  • GitHub 规则库批量解析会将 .ruleset 文件识别为远端 Surge Ruleset。

安全与兼容性

  • 保留 iCloud 冲突检测、原子写入、所有权标记、最后成功缓存与 surge-cli --check 发布门禁。
  • 兼容旧版 relay.json,新增 Ruleset 和内嵌规则字段不会破坏历史配置。
  • 54 项测试全部通过;Release 构建在 warnings-as-errors 下通过。

下载与校验

下载 Surge-Shallow-1.7.0-macOS.zip,解压后将 Surge Shallow.app 移入 /Applications

SHA-256:

8346d20071e88698e3983659114197716e595f4c3261f81705a1eba98f814a7c

Surge Shallow 1.5.0

Choose a tag to compare

@funnythingfunnylove funnythingfunnylove released this 22 Jul 03:19

Surge Shallow 的第一个公开预编译版本。

主要能力

  • 管理多个 HTTP/HTTPS Surge 规则源,并按优先级自动解析、合并和去重。
  • 通过结构化表单维护 macOS 与 iOS/iPadOS 的公共配置和平台差异。
  • 独立管理 Proxy、Proxy Group、Snell v6 与 Smart Group。
  • 支持 GitHub 规则仓库批量解析和导入。
  • 生成 Detached Profile,共用通用段并仅保留平台差异。
  • 发布前执行内置检查和本机 surge-cli --check
  • 通过 Surge iCloud Documents 原子发布 Profile,并保留冲突、所有权和最后成功版本保护。

下载与安装

  1. 下载 Surge-Shallow-1.5.0-macOS-arm64.zip
  2. 解压后将 Surge Shallow.app 移入 /Applications
  3. 首次运行如果 macOS 显示来源提示,可在 Finder 中按住 Control 点击应用并选择“打开”。

系统要求:macOS 26,Apple Silicon。建议安装 Surge Mac,以启用真实的 Profile CLI 校验。

签名说明

此预编译包使用 ad-hoc 签名,尚未使用 Apple Developer ID 签名或 notarize。发布资产同时提供 SHA-256 校验文件。

为兼容改名前的安装,bundle ID、iCloud 管理目录、UserDefaults 键和 Profile 所有权标记仍保留原有内部标识,升级不会创建空白配置或失去既有 Profile 所有权。