Skip to content

准备 ApeCloud 品牌发行版改动清单 #5

@earayu

Description

@earayu

现状

apecloud/goose 目前仍是上游 Goose 的原始形态。仓库里已经有 CUSTOM_DISTROS.md,上游明确支持下游发行版在几个低风险位置做定制:文案、Logo、默认配置、界面隐藏、打包分发。结合现有代码检查,第一版 ApeCloud 发行版可以沿着这个边界推进,尽量保留后续跟随上游的能力。

已确认的主要代码位置:

  • 产品名和应用元数据:ui/desktop/package.jsonui/desktop/src/main.tsui/desktop/forge.config.tsui/desktop/electron-forge.config.ts
  • 桌面端图标和加载图:ui/desktop/src/images/
  • 桌面端内置扩展列表:ui/desktop/src/built-in-extensions.json
  • 平台内置扩展默认启用状态:crates/goose/src/agents/platform_extensions/mod.rs
  • 高风险本地工具定义:crates/goose/src/agents/platform_extensions/developer/mod.rs
  • 默认配置和配置叠加:crates/goose/src/config/base.rscrates/goose/src/config/extensions.rs
  • MCP 配置类型:crates/goose/src/agents/extension.rs
  • 系统提示词文本:crates/goose/src/prompts/system.md
  • CLI 体积相关特性:crates/goose-cli/Cargo.tomlcrates/goose/Cargo.toml
  • 打包和产物命名:.github/workflows/release.yml.github/workflows/publish-docker.ymlDockerfile

现有可复用素材:

  • PoC 可先用 apecloud/aperag-enterprise/web/public/logo.png 做图标验证。
  • PoC 可先用 apecloud/aperag-enterprise/web/public/logo_light_en_US.pnglogo_dark_en_US.png 做横向标识验证。
  • 同仓还有 docs/ppt/assets/logos/apecloud.png,但也是光栅图。
  • 目前没找到 ApeCloud 的 SVG 矢量源。正式发布需要补齐 ApeCloud 标识 SVG、macOS .icns、Windows .ico 多尺寸源文件。

现象

现在如果直接对外使用 fork,用户仍会看到上游 Goose 身份:应用名、菜单、图标、README、加载图、协议名、错误弹窗和部分提示词文本都还带 Goose / AAIF 痕迹。默认扩展也偏向上游完整能力,开发者工具默认启用,包含写文件、改文件和执行命令,作为 ApeCloud 默认发行版风险偏高。

同时,ApeMind MCP 应作为默认或预置集成出现,但这个 fork 的产品身份应是 ApeCloud 品牌的本地代理项目,不能把项目名、文案和配置都写死成 ApeMind 唯一场景。

影响

  • 品牌不一致:用户会把 ApeCloud 发行版误认为上游官方 Goose,或者看不出 ApeCloud 产品身份。
  • 默认能力过宽:首次启动就暴露本地写文件、改文件、执行命令等高风险工具,不适合作为安全默认值。
  • 配置入口不清:ApeCloud / ApeMind MCP 可以通过上游 streamable_http 扩展接入,但需要准备清晰的默认配置模板和环境变量说明。
  • 后续维护风险:如果直接改核心循环、工具执行或提供商接入,后续同步上游会变难。

期望结果

准备一组可以落地的改动清单,后续按清单开 PR。建议分成 5 组,全部保持在浅层 fork 边界内。

1. 品牌和文案

  • 把用户可见的应用名从 Goose 调整为 ApeCloud 发行版名称。具体名称待产品确认,临时建议用 ApeCloud AgentApeCloud Local Agent
  • 修改 README.md、桌面端关于页、菜单、错误弹窗、窗口标题、加载页等用户可见文案。
  • 保留上游 license、copyright、notice,不暗示这是上游官方 Goose。
  • 系统提示词只做产品称呼层面的文字替换,不改提示词装配机制。

建议检查文件:

  • README.md
  • CUSTOM_DISTROS.md
  • ui/desktop/package.json
  • ui/desktop/src/main.ts
  • ui/desktop/src/**
  • crates/goose/src/prompts/system.md

2. Logo 和视觉资产

  • 替换桌面端图标、托盘图标、加载图、README 头图、favicon。
  • PoC 阶段先使用 ApeRAG 企业版仓库里的 ApeCloud PNG 素材。
  • 正式发布前由 @earayu2 或设计侧提供 SVG 矢量源、.icns.ico 多分辨率源文件。

建议检查文件:

  • ui/desktop/src/images/
  • ui/desktop/src/components/**
  • README.md
  • 打包配置里的 icon 路径

3. 默认配置

  • 预置 ApeCloud / ApeMind MCP 作为默认或可选集成,使用上游已有 streamable_http 配置,不改 MCP 运行时。
  • MCP URL、鉴权 token 使用环境变量或用户配置注入,不把生产地址和密钥写死。
  • 默认模型、默认提供商通过现有配置层设置,优先用系统配置或额外配置文件,不改提供商内部逻辑。
  • 默认关闭遥测、OTel、AWS provider 等非必要能力,CLI PoC 构建建议继续用 --no-default-features --features rustls-tls

建议检查文件:

  • crates/goose/src/config/base.rs
  • crates/goose/src/config/extensions.rs
  • crates/goose/src/agents/extension.rs
  • crates/goose-cli/Cargo.toml
  • crates/goose/Cargo.toml
  • CUSTOM_DISTROS.md

4. 界面隐藏和安全默认值

  • 默认隐藏或关闭不需要的 provider、扩展入口、更新入口、外部链接入口。
  • 默认关闭高风险本地工具,尤其是写文件、改文件、执行命令;需要用户显式打开。
  • 优先用配置、默认值和界面隐藏实现,不删除上游扩展代码。
  • 如果需要保留只读能力,可优先保留查看目录、读取文件、MCP 查询类工具。

建议检查文件:

  • ui/desktop/src/built-in-extensions.json
  • crates/goose/src/agents/platform_extensions/mod.rs
  • crates/goose/src/agents/platform_extensions/developer/mod.rs
  • ui/desktop/src/**

5. 打包和分发

这部分由生产化交付侧继续细化,当前先列入同一清单:

  • CLI 二进制名和下载脚本命名。
  • Cargo release profile、strip、LTO、feature 组合。
  • GitHub release 产物名。
  • Docker 镜像名:ghcr.io/apecloud/goose 或产品最终名称对应路径。
  • download_cli.sh 下载地址。
  • Homebrew / npm / 桌面端安装包名称,等待产品最终显示名再定稿。
  • release.yml 中需要签名或外部发布账号的任务先跳过,Docker 官方流程慢属于上游特征,可按 3-4 小时预期记录。

建议检查文件:

  • .github/workflows/release.yml
  • .github/workflows/publish-docker.yml
  • Dockerfile
  • ui/desktop/package.json
  • ui/desktop/forge.config.ts
  • ui/desktop/electron-forge.config.ts

验收建议:

  • 启动桌面端后,主要用户路径不再出现不该出现的 Goose 产品身份。
  • README 和安装说明清楚说明这是 ApeCloud 发行版,同时保留上游来源和许可证。
  • 默认配置能连接 ApeCloud 预置 MCP,ApeMind 是默认或可选集成,不作为产品唯一身份。
  • 首次启动高风险本地工具处于关闭或隐藏状态。
  • PR 差异只落在文案、Logo、默认配置、界面隐藏、打包分发五类;如果必须越界,单独开议题说明原因并等待确认。

不解决什么

  • 不重写 Goose 核心代理循环。
  • 不改工具执行、权限路由、MCP 运行时内部机制。
  • 不新增模型提供商内部实现。
  • 不把项目强绑定为 ApeMind 专用客户端。
  • 不在本议题里解决正式签名、NPM 发布账号、Homebrew tap 等发布账号问题。
  • 不在本议题里决定最终产品名;可以先用临时名推进 PoC,正式名确认后统一替换。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions