Skip to content

Polish LoopX desktop branding - #3383

Merged
huangruiteng merged 1 commit into
mainfrom
codex/loopx-desktop-name-icon
Aug 20, 2026
Merged

Polish LoopX desktop branding#3383
huangruiteng merged 1 commit into
mainfrom
codex/loopx-desktop-name-icon

Conversation

@steven-kid

@steven-kid steven-kid commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • rename the desktop app bundle and window from LoopX Control Plane to canonical LoopX
  • refresh the desktop icon with the confirmed monochrome ProductMark at a larger size
  • align macOS release artifact names with the shorter app name

Validation

  • python3 examples/desktop-icon-alpha-smoke.py
  • python3 -m pytest -q tests/test_packaged_skill_metadata.py
  • python3 -m json.tool apps/desktop/loopx-control-plane/src-tauri/tauri.conf.json >/dev/null
  • cargo fmt --check --manifest-path apps/desktop/loopx-control-plane/src-tauri/Cargo.toml
  • cargo test --manifest-path apps/desktop/loopx-control-plane/src-tauri/Cargo.toml (4 passed)
  • git diff --check
  • previous exact head: macOS and Windows desktop artifact builds passed; the new head changes only canonical casing and matching macOS bundle paths

@huangruiteng huangruiteng left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

审查基线

  • 审查对象:PR #3383,精确 head 76c68a27848bbe5552677f711fcfe1d76a4e1643
  • 目标理解:把桌面壳从较长的 “LoopX Control Plane” 收短,并同步安装包图标、窗口标题和 release artifact 命名。
  • 变更面:Tauri productName、运行时窗口标题、桌面 README、macOS/Windows 构建与上传工作流、四份桌面图标资源。

主路径

  • productName、macOS .app 收集路径和 zip 名在当前 diff 中彼此一致;loopx-macos-* / loopx-windows-* 也能被 loopx-* 下载模式覆盖。
  • 精确 head 的 DCO、dependency review、macOS desktop、Windows desktop 均通过;release upload 按设计在 PR 事件中跳过。
  • 独立复核通过:examples/desktop-icon-alpha-smoke.pypython -m json.tool .../tauri.conf.jsongit diff --check origin/main...HEAD。图标在 256px 与 32px 下均保持清晰,视觉上符合 DESIGN.md 的单色、克制方向。

失败路径

  • macOS bundle 路径若与 productName 漂移,ditto 会直接失败;本次 macOS check 通过,证明当前组合一致。
  • release upload job 在 PR 中不会执行,因此附件上传链路没有本次运行证据;静态复核确认当前 artifact pattern 与两个 matrix artifact 名一致,风险可控。
  • 仓库内未发现旧 loopx-control-plane-* artifact 名的消费方,因此本仓库内没有遗漏迁移点。

交付前复核

有一个必须修复的品牌契约问题:apps/desktop/loopx-control-plane/src-tauri/tauri.conf.json 把首屏可见产品名改成了 Loopx。仓库的 canonical design contract、README 和其他 UI 统一使用 LoopX;现有 tests/test_packaged_skill_metadata.py 还明确要求 display name 为 LoopX / LoopX ... 并拒绝 Loopx。同一错误 casing 又传播到了运行时窗口标题和桌面 README。

请保留“去掉 Control Plane、缩短桌面名称”的产品目标,但统一改成 LoopX:至少同步 productName、Rust 窗口标题、桌面 README 标题,以及 macOS LoopX.app / LoopX.app.zip 收集路径。机器可读 artifact id 继续使用小写 loopx-* 没问题。若确实要把全局品牌改为 Loopx,那应作为单独、经 owner 首屏批准的设计变更,同时更新 DESIGN.md、全局 UI 和现有 canonical-brand 测试,不能只在桌面壳局部改名。

结论

请求修改。实现链路、图标和构建验证整体扎实;当前唯一 blocker 是首屏产品名违反仓库既有 canonical brand casing。修正为 LoopX 并保持工作流路径同步后,这个 PR 可以快速复核。

English verdict: Request changes on the visible product-name casing only. Keep the shorter desktop name, but use the canonical LoopX consistently in Tauri config, the runtime window title, the desktop README, and macOS bundle paths. The icon and artifact workflow are otherwise coherent, and the exact-head checks plus focused local validations pass.

@huangruiteng huangruiteng left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

动机

这个 PR 想把桌面端对外显示名从 LoopX Control Plane 收短,同时刷新桌面图标,并让 macOS / Windows 的 release artifact 命名与新的桌面 bundle 对齐。方向本身合理:桌面壳的用户可见名称可以更简洁,发布流水线也应跟随真实 bundle 名称。

改动思路

实现沿着一条完整主路径修改:Tauri 的 productName 决定安装包和 .app 名称,Rust 运行时窗口标题与它保持一致,desktop README 同步展示名,GitHub Actions 再按新 bundle 路径打包并上传;四种平台图标也一起替换。正向构建链路是连贯的,但用户可见品牌名被写成了 Loopx,与仓库的规范品牌 LoopX 不一致。最小修复不需要撤回“缩短名称”的产品选择,只需将用户可见字符串和由其派生的 macOS bundle 路径统一为 LoopX

具体改动

关键代码讲解

  1. apps/desktop/loopx-control-plane/src-tauri/tauri.conf.jsonproductName 改成 Loopx,直接改变已安装应用和 macOS .app bundle 的显示名。
  2. apps/desktop/loopx-control-plane/src-tauri/src/lib.rs 把主窗口标题同步改成 Loopx,这是启动后首屏可见的产品名。
  3. .github/workflows/desktop-release-artifacts.yml 将上传 artifact ID 收短为 loopx-macos / loopx-windows,并把 macOS 收集路径改到 Loopx.app。小写机器标识本身没有问题,bundle 路径则必须与最终 productName 精确一致。
  4. desktop README 与四种 Tauri 图标同步更新。新图标的 alpha 背景与图形辨识度正常,四种平台资产齐全。

我在 exact head 76c68a27848bbe5552677f711fcfe1d76a4e1643 上复核了完整 diff、远端检查和本地聚焦验证:desktop-icon-alpha-smoke.pypython -m json.toolgit diff --check 均通过;Sign-off、dependency review、macOS desktop、Windows desktop 均为成功,release upload job 为条件性跳过。

对主干的风险

有一个必须修复的品牌合同问题:LoopX 的仓库首页、双语 README、DESIGN.md 和现有产品文案都把规范名称写成 LoopX;本 PR 在桌面安装包、窗口首屏和 README 中引入 Loopx,会让同一产品出现两套大小写身份,并让后续文档、截图、签名与发布说明继续漂移。这不是纯机器文件名差异,而是用户可见默认行为的变化。

请把以下用户可见与派生 bundle 字符串统一为 LoopX

  • Tauri productName
  • Rust 主窗口标题;
  • desktop README 标题;
  • workflow 中的 Loopx.appLoopx.app.zip 路径。

loopx-macosloopx-windows 这类机器可读 artifact ID 可以继续保持小写。修正后,正向路径应继续证明 Tauri 产物能被 workflow 找到;负向路径则应避免任何首屏或公开文档再出现 Loopx。这个 PR 不涉及 typed state、domain-neutral control-plane contract 或 guidance/obligation 语义变化;主要风险集中在品牌一致性和发布 bundle 兼容面。

我的整体评价

图标和发布流水线的改动范围集中,主路径完整,现有验证也覆盖了两端桌面构建;但规范品牌大小写是公开产品表面的阻断项。因此本轮对 exact head 的结论是 REQUEST_CHANGES。将上述四处统一为 LoopX 后,我可以基于新 head 快速复审。

English verdict: REQUEST_CHANGES. On exact head 76c68a27848bbe5552677f711fcfe1d76a4e1643, the icon refresh and release-artifact wiring are coherent and validated, but the user-visible name Loopx conflicts with the canonical LoopX brand. Keep the shortened desktop name, but use LoopX consistently in Tauri productName, the runtime window title, the desktop README, and the macOS bundle paths; lowercase machine artifact IDs may remain unchanged.

Shorten the desktop bundle and window name to the canonical LoopX brand, refresh the monochrome product icon, and align macOS and Windows release artifact names with the updated bundle.

Signed-off-by: steven-kid <stevenkid404@gmail.com>

Co-authored-by: TRAE CLI <noreply@bytedance.com>
@steven-kid
steven-kid force-pushed the codex/loopx-desktop-name-icon branch from 76c68a2 to d1dd485 Compare August 20, 2026 12:19
@steven-kid steven-kid changed the title Polish Loopx desktop branding Polish LoopX desktop branding Aug 20, 2026
@steven-kid

Copy link
Copy Markdown
Collaborator Author

Addressed the canonical brand casing blocker and consolidated the PR into one reviewable commit.

Exact head: d1dd48591af35745dc02ce1d8857681e251d992b

  • Tauri productName: LoopX
  • native window title: LoopX
  • desktop README title: LoopX Desktop
  • macOS bundle collection: LoopX.app / LoopX.app.zip
  • machine artifact IDs remain lowercase loopx-macos / loopx-windows
  • no remaining Loopx user-visible string in the changed desktop/workflow surfaces
  • commit Author/Committer/DCO: steven-kid <stevenkid404@gmail.com>

Validation:

  • desktop icon alpha smoke: passed
  • canonical packaged-brand test: passed
  • Tauri JSON validation: passed
  • Rust fmt: passed
  • Rust tests: 4 passed
  • diff hygiene: passed

Please re-review and merge when the refreshed desktop CI is green.

@steven-kid

Copy link
Copy Markdown
Collaborator Author

All refreshed checks are green on exact head d1dd48591af35745dc02ce1d8857681e251d992b: macOS desktop, Windows desktop, DCO, and dependency review. The requested Loopx → canonical LoopX corrections are complete in productName, window title, README, and macOS bundle paths. Ready for final review and merge.

@huangruiteng huangruiteng left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

动机

这个 PR 把实验性桌面壳的用户可见名称从 LoopX Control Plane 收短为规范品牌 LoopX,同时刷新桌面图标,并让 macOS / Windows 的构建产物与新 bundle 名对齐。旧名称会把产品定位细节暴露到安装包、窗口标题和 release 文件名;新名称更符合仓库统一的品牌合同。仓库内没有发现对旧 loopx-control-plane-macos / loopx-control-plane-windows artifact ID 的消费方,因此当前最小改动就是同步配置、运行时标题、发布工作流和桌面说明,而不需要额外兼容层。

改动思路

主路径保持单一权威链路:Tauri productName 决定安装包和 macOS .app bundle 名;Rust 的 run() 在创建主窗口时使用同一可见名称;workflow 的 macOS 收集步骤按该 bundle 名压缩,matrix artifact ID 改成短机器名,release job 再用 loopx-* 下载本次 workflow 中的两个桌面 artifact。正向路径是“配置生成 bundle → workflow 收集 → artifact 上传 → release 下载并发布”;失败路径中,productName.app 路径一旦漂移,macOS job 会在 ditto 处失败。当前 exact head 的 macOS / Windows 构建均成功,证明 bundle 与收集路径一致。

具体改动

关键代码讲解

  1. apps/desktop/loopx-control-plane/src-tauri/tauri.conf.jsonproductName 设为 LoopX。这是安装包显示名和 macOS bundle 名的权威输入,也修复了上一 head 的非规范 Loopx casing。
  2. apps/desktop/loopx-control-plane/src-tauri/src/lib.rsrun() 把主窗口标题同步为 LoopX;这条调用位于真实桌面启动路径,并非测试专用结构。
  3. .github/workflows/desktop-release-artifacts.yml 将 matrix artifact ID 收短为 loopx-macos / loopx-windows,macOS 收集路径同步为 LoopX.app / LoopX.app.zip,release 下载模式相应改为 loopx-*。当前 workflow 只产生这两个前缀匹配的 artifact,因此模式在现有调用面内是确定的。
  4. desktop README 标题与四份 Tauri 图标资源同步更新。独立查看 128px 资源可见其为透明背景、单色 LoopX ProductMark;alpha smoke 通过,资源仍由现有 Tauri bundle 配置直接消费。

在 exact head d1dd48591af35745dc02ce1d8857681e251d992b 上,我复核了完整 diff、调用点、仓库内旧 artifact 名消费方以及远端 checks。独立验证通过:desktop-icon-alpha-smoke.py、规范品牌测试函数、Tauri JSON 解析、cargo fmt --check、Rust tests(4 passed)和 git diff --check;DCO、dependency review、macOS desktop、Windows desktop 也全部成功。

对主干的风险

未发现阻断问题。最强回归场景是 bundle 名与 workflow 收集路径再次漂移:触发后 macOS 构建会找不到 .app 并在收集步骤失败,CI 可直接观测,最小修复是恢复两处相同的 canonical name。第二个残余风险是 release upload 在 PR 事件中按设计跳过,因此“下载 workflow artifact 并附加到 GitHub Release”的最后一步没有本 head 的动态证据;静态检查表明 download pattern 能匹配两个 matrix artifact,且远端平台构建已验证实际产物。

artifact ID 和 bundle 文件名属于默认交付表面的显式变化;PR 摘要、desktop README 和 workflow diff 已说明新旧行为,仓库内扫描未发现旧名称消费者。外部脚本若硬编码旧 artifact ID 仍需随 release 说明迁移,这是低概率但真实的兼容风险。该 PR 不新增 typed state/classifier,不修改通用控制面文案、domain-neutrality,也不改变 guidance / machine obligation 语义。图标和窗口名属于首屏展示,合并仍应遵守仓库的 owner 首屏预览确认门禁;这不改变本次代码审查结论。

我的整体评价

上一轮唯一 blocker——Loopx 与规范 LoopX 品牌大小写不一致——已在配置、窗口标题、README 和 macOS bundle 路径上完整修复。变更体量小且集中,真实生产调用点明确,跨平台 CI 与聚焦本地验证覆盖了主要正向和失败边界。结论:APPROVE。残余风险主要是 PR 事件不执行 release attachment,以及潜在的仓库外旧 artifact ID 消费方;发布时保留迁移说明并完成首屏 owner 确认即可。


English review

Motivation

This change shortens the experimental desktop shell's visible name to the canonical LoopX brand, refreshes the packaged icon, and aligns bundle and artifact naming. No in-repository consumer of the old artifact IDs was found, so a compatibility shim is not justified here.

Approach

Tauri productName remains the bundle-name authority, the Rust startup path uses the same window title, and the release workflow collects LoopX.app, uploads the two loopx-* matrix artifacts, then downloads that bounded set for release publication. A bundle/path mismatch fails observably in the macOS collection step.

Concrete changes

The exact head d1dd48591af35745dc02ce1d8857681e251d992b uses canonical casing in Tauri config, runtime title, README, and macOS paths; it also replaces all packaged icon sizes. Independent checks passed for icon alpha, canonical brand metadata, JSON parsing, Rust formatting, four Rust tests, and diff hygiene. DCO, dependency review, macOS desktop, and Windows desktop checks are green.

Main-branch risk

No blocking finding. Release attachment is skipped on pull requests, so the final GitHub Release upload remains statically reviewed rather than dynamically exercised on this head. External consumers hard-coding the old artifact IDs may need migration guidance. There is no typed-state, domain-neutrality, default obligation, or guidance-versus-enforcement change. Because the icon and title are first-screen presentation, merge still remains subject to the repository's owner preview gate.

Overall assessment

The previous canonical-casing blocker is fully resolved across every coupled surface. The diff is cohesive, the production call sites are active, and platform CI plus focused validation cover the material behavior. APPROVE, with release-note migration wording and owner first-screen confirmation retained as merge-time holds.

@huangruiteng
huangruiteng merged commit c65925d into main Aug 20, 2026
5 checks passed
@huangruiteng
huangruiteng deleted the codex/loopx-desktop-name-icon branch August 20, 2026 13:01
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.

2 participants