Skip to content

Latest commit

 

History

History
118 lines (84 loc) · 10.1 KB

File metadata and controls

118 lines (84 loc) · 10.1 KB

Changelog

1.2.0 — 2026-07-17

新增

  • 自适应图像主题引擎:通过本地 Canvas 分析亮度、主色、视觉焦点、左右安全区和图像比例,为任意背景图生成协调的浅色/深色外观;图片不会上传到外部服务。
  • 主题新增 appearance: auto | light | darkart.focusX/focusY0..1)、art.safeArea: auto | left | right | center | noneart.taskMode: auto | ambient | banner | off 配置;显式值优先于自动分析。
  • 首页与任务页按图像比例采用不同呈现:超宽图在任务页使用横幅和纵向渐隐,普通比例图使用低噪环境背景,也可用 taskMode=off 关闭任务页图像。
  • 内置 Gothic Void Crusade 与「桥本有菜」两套实测预设;安装后幂等播种到主题库,菜单栏或 switch-theme-macos.sh 可直接切换,且绝不覆盖 custom-* 用户主题。
  • 新增中英文参考图生图指南:明确 2560 × 1440、Image 1/2/3 职责、裁切安全区、原创/已授权成年身份两套流程,以及“文案和小照片不烘焙进背景”的约束。

改进

  • watcher 在文档壳层出现后立即注入,按 CSS/主题/图片内容哈希热刷新并复用静态 payload;同一主题切换不再重复启动守护进程,减少原生界面闪现和后台轮询。
  • 主题切换先完整暂存图片,最后原子发布 theme.json;全新安装在没有活动主题时先启用 Gothic Void Crusade,已有活动主题保持不变。
  • load-image-theme-macos.sh 可通过 --appearance--focus-x--focus-y--safe-area--task-mode 精确调节构图;旧主题缺省时使用安全自适应值。
  • 客户端发行包的说明版本改为读取 VERSION,避免发布文案与实际版本漂移。

修复

  • 首页建议卡片的文字节点显式跟随主题正文色,避免 Codex 浅色模式的原生文字 token 覆盖深色主题并显示成近黑色;实时验证器会在卡片可见时核对实际文字颜色。
  • 当前版本没有计划写入外观键时,macOS 安装不再解析或备份 config.toml 的 TOML 结构。包含多行 MCP args 或多行字符串的配置可以原样安装,旧备份的恢复流程仍保留严格检查。
  • 保留 Codex 原生固定顶栏的定位与层级,避免打开任务侧边面板后开关被推出主区、导致面板无法关闭。
  • 修复亮色背景图在 ChatGPT/Codex 暗色模式下错误生成浅色皮肤壳的问题。appearance=auto 现在跟随原生/系统外观,避免白字叠在浅色面板上导致界面不可读。
  • 修复从“设置 > 外观”返回“已安排的任务”等无输入框路由后,验证器因找不到 composer 而拒绝合法 Codex 主界面的问题。
  • 首页不再在原生标题栏注入主题名称和圆形伪按钮;watcher 为后续完整导航注册更早的注入并缩短目标探测间隔,以减少原生界面先闪现再换肤的时间。
  • 超宽任务横幅不再让背景伪元素在固定高度直接结束;图片仍按原比例置顶,遮罩与渐隐延续到整页,减少明显的底部截断感。
  • 修复普通宽屏图片被 containcover 双层重复绘制的问题;标准 16:9 现在始终使用一张 cover 整窗背景,并按安全区和焦点保留主体。
  • 修复沉浸任务页侧栏原生缩放热区继承背景后向主区延伸 20px、形成明显竖向分割的问题;同时统一顶栏、侧栏与输入框的半透明材质,并为输入框补上不受原生边框宽度影响的内描边。
  • 16:9 宽图现在在首页也使用单张整窗背景,不再把同一图片重复绘制成 hero 卡片;插件、已安排和 Pull Requests 等工具路由会清除原生整块黑底,并将搜索框和撰写器统一为单层表面。任务页同时移除独立顶栏底色和撰写器后的原生底部渐变,避免顶部、底部出现重叠面板。
  • SwiftBar 菜单栏标题恢复调色板图标,并加入静态回归检查,避免升级后只剩 Skin ON 文本。
  • 修复 SwiftBar 从“暂停”再次应用时,在 ChatGPT 自带 Node 初始化前读取状态而静默退出、既不弹确认框也不应用的问题;注入 watcher 改由 launchctl 独立托管,菜单动作结束后不再从 Skin ON 跳回问号。
  • SwiftBar 现在明确区分“已选主题”和“已验证应用”,显示应用中、暂停中、取消与失败结果;ChatGPT 主内容区会在开启、关闭和切换主题时展示非阻塞进度,只有 DOM、主题 ID 与 payload 版本均通过验证后才提示成功。
  • 浅色模式撰写器改为更通透的珍珠白表面,并修复占位文字被原生双重透明度削弱的问题;暗色模式继续使用单层实色表面。
  • 兼容 Codex Desktop 更名:官方桌面端在 26.707 从 Codex.app 更名为 ChatGPT.app(bundle id 仍是 com.openai.codex)。发现 / 启动流程现在两种名字都识别,且 state.json 缓存的旧 app 路径若已不存在则不再劫持启动——此前更新后会因指向旧 Codex.app 而启动失败
  • 菜单栏与 status-dream-skin-macos.sh 不再依赖 /usr/bin/python3(macOS 12.3+ 默认不预装)读取主题名与运行状态,改用纯 shell 解析;此前在未装 Xcode 命令行工具的机器上,主题名会退化成 id、--json 状态直接失效
  • 截图验证不再向 ChatGPT 派发 Escape、鼠标移动或额外等待 300ms,避免验证过程改变用户当前界面。

安全

  • CDP 端点必须由已验证的官方 Codex 可执行文件或其子进程监听;WebSocket 还会校验 loopback、page ID、路径、无重定向,并安全处理畸形消息和发送异常。
  • App 与 bundled Node 必须满足固定的 OpenAI Team ID 和 Apple signing requirement;热应用不再信任外部 NODEstate.json 中缓存的运行时身份,CDP 祖先还会核对进程的真实 executable path。
  • 运行状态读取会在执行 Node 前自行确认已验证的 bundled runtime,避免调用顺序变化重新引入未验证执行;感谢 @guiguili520 报告 #12,以及 @rwang23 提供原始修复实现。
  • 主题配置与图片使用真实路径 containment,拒绝 symlink 越界、空文件、超过 16 MB、单边超过 16384 px 或超过 50 MP 的图片;主题展示文本拒绝换行和控制字符。
  • AppleScript 动态内容全部通过 argv 传递;SwiftBar 过滤主题 ID、文件名和菜单文本,避免主题元数据改变菜单属性或命令参数。
  • config.toml 只按严格 UTF-8 读取,拒绝 NUL、歧义多行 TOML、重复 [desktop],通过用户级锁、原始字节核验和同目录原子替换保护中文配置与并发写入。
  • 暂停和恢复会在 TERM/KILL 前后核验 watcher 的 PID、启动时间、Node 和 injector 路径;不匹配的进程绝不结束,已确认 watcher 若无法停止则保留 state 并中止,不再报告假成功。

测试

  • 覆盖每套预设的可注入性与播种幂等、首页/任务 renderer、早期注入、主题原子切换、中文与 CRLF/BOM 配置往返、非法 UTF-8/NUL/TOML 拒绝、路径穿越、symlink 越界、控制字符和像素炸弹。
  • 增加固定签名要求、可信 bundled Node、真实 executable ancestry 和非交互截图的回归检查。

说明

  • 「桥本有菜」源图、标准化背景和浅/暗实机截图分别归档;截图只作预览,不能当背景导入。用户提供的图像不自动获得 MIT 素材许可,公开再分发前仍需确认相应权利。

1.1.2 — 2026-07-16

修复

  • 修正内置主题引用了未随仓库发布的背景文件,恢复使用 bundled abstract demo 素材
  • 更新主题配置往返测试:安装只备份外观键,不再错误断言强制切换深色模式
  • 恢复原本没有 [desktop] 配置段的用户设置时,不再额外写入空段
  • 热切换读取运行状态时复用 Codex 内置 Node.js,不再依赖系统 python3 或执行 eval
  • 显式传入的 --theme-dir 缺少 theme.json 时立即报错,不再静默回退到内置 demo 主题

1.1.1 — 2026-07-16

修复

  • 不再用 launchctl submit 托管带调试口的 Codex:退出 SwiftBar / 关掉 Codex 后不应再被 launchd 自动拉起
  • 暂停与完全恢复时清理 com.openai.codex-dream-skin-studio.app 作业

1.1.0 — 2026-07-16

新增

  • SwiftBar 菜单栏入口(Install Menu Bar.command):应用 / 暂停 / 换图 / 切换已保存主题 / 从图片文件夹加载 / 完全恢复
  • 主题库(themes/)与图片投放目录(images/)动态加载,不再把 README 图库合成图当背景素材
  • 按 Codex 应用浅色 / 深色自动切换皮肤壳(data-dream-shell

改进

  • CDP 已就绪时热切换主题(重启 injector + 短时注入),换图更快
  • 注入校验放宽(项目选择器等可选),避免误杀已生效皮肤
  • 注入守护优先 nohup;暂停状态与路径大小写下停止逻辑更稳
  • 安装时不再强制 appearanceTheme=dark,只备份桌面外观相关键,便于恢复与自动适配

视觉

  • 以原版暗色 portal CSS 为结构底,叠加 light 壳与更薄横幅遮罩,减轻「换图看不清」
  • 示例纯横幅:docs/images/banner-arina-hashimoto-pure-no-ui.png(无人机 UI 合成)

说明

  • docs/images/gallery/ 仅为效果预览,不要当 theme 背景导入

1.0.0 — 2026-07-15

  • 发布 macOS 通用主题制作器,而不是固定角色皮肤。
  • 加入 Finder 选图、自动 JPEG 转换、主题命名和高级配色参数。
  • 主页使用独立横幅,任务页使用背景与磨砂层,完整保留原生交互。
  • 改为复用并验证 Codex 官方签名 Node.js,不再附带大型运行时或依赖全局 Node。
  • 增加独立安装目录、桌面启动/定制/验证/恢复入口。
  • 增加官方签名、CDP 端口归属、PID 身份、刷新重注入和真实 DOM 自检。
  • 增加原子配置备份、精确恢复、静态测试、安装恢复循环和发布打包脚本。
  • 清理固定角色内部命名;传送门主题仅作为可替换示例素材。
  • 开源树:示例横幅改为无角色抽象几何图;验收截图不入库;补充 NOTICE / README 商标与安全边界说明。