From c37b7158a9ff869eb1d6939521b37f452f5b38e2 Mon Sep 17 00:00:00 2001 From: argszero Date: Tue, 4 Aug 2026 22:34:07 +0800 Subject: [PATCH] =?UTF-8?q?emrg:=20Phase=204=20=E6=96=87=E6=A1=A3=20README?= =?UTF-8?q?=20=E5=AE=89=E8=A3=85/=E5=8D=B8=E8=BD=BD=E7=AB=A0=E8=8A=82?= =?UTF-8?q?=E9=87=8D=E5=86=99=20+=20roadmap=20=E9=AA=8C=E6=94=B6=E5=8B=BE?= =?UTF-8?q?=E9=80=89=EF=BC=88rant=20#12=20=C2=A713/=C2=A714=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.en.md | 30 ++++++++++++++++++++++++++---- README.md | 30 ++++++++++++++++++++++++++---- docs/design/roadmap.md | 20 ++++++++++++++------ 3 files changed, 66 insertions(+), 14 deletions(-) diff --git a/README.en.md b/README.en.md index 3efccfd..bc18bd3 100644 --- a/README.en.md +++ b/README.en.md @@ -44,7 +44,29 @@ EMRG is an experiment in *autonomous self-improvement*. It's an AI agent that he ## 🚀 Quick Start -### 🍎 macOS +### 📦 Download installer (recommended, Phase 4 one-click) + +Download the installer for your platform from [GitHub Releases](https://github.com/argszero/emrg/releases) and double-click: + +| Platform | Installer | Notes | +|----------|-----------|-------| +| macOS (Apple Silicon) | `EMRG--macos-arm64.pkg` | Double-click; GUI at `~/Applications/EMRG.app` | +| macOS (Intel) | `EMRG--macos-x64.pkg` | Same | +| Windows | `EMRG--windows-x64.exe` | Inno Setup, no UAC, Start-menu shortcut | +| Linux | `EMRG--linux-x86_64.AppImage` | Self-extracts to `~/.emrg/install/` on first run | +| Linux (ARM64) | `EMRG--linux-aarch64.AppImage` | Same | + +The installer bundles a full runtime (standalone Python 3.13 + deps + git + gh + GUI) — **zero prerequisites on a clean machine (no python/uv/git/gh/node)**, 100% offline install. After install: + +- GUI: launch **EMRG** from Launchpad / Start menu +- TUI: `~/.emrg/install/bin/emrg` (Linux also creates `~/.local/bin/emrg` symlink) +- First-run wizard asks for your API key; python scripts work inside sessions + +> **Uninstall**: macOS run "卸载 EMRG.app" (uninstall app); Windows uninstall from Control Panel; Linux run `~/.emrg/install/bin/emrg-uninstall` (or delete the AppImage + symlink). Uninstall preserves non-EMRG user files in `~/.emrg`, and writes a termination report + data snapshot. +> +> **Unsigned builds**: if the macOS package is unsigned, right-click → Open on first launch (Gatekeeper). Besides the GUI, you can also edit `~/.emrg/config.toml` directly (GUI settings save rewrites config and drops comments — for advanced config, edit the file). + +### 🍎 macOS (source install) **Install:** @@ -58,7 +80,7 @@ curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | ba curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | bash -s -- purge ``` -### 🐧 Linux +### 🐧 Linux (source install) **Install:** @@ -72,7 +94,7 @@ curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | ba curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | bash -s -- purge ``` -### 🪟 Windows (WSL2) +### 🪟 Windows (WSL2, source install) **Install:** @@ -92,7 +114,7 @@ curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | ba curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | bash -s -- purge ``` -> Prerequisites (install.sh auto-detects and prompts): git, python 3.11+, uv. gh CLI recommended. +> Source-install prerequisites (install.sh auto-detects and prompts): git, python 3.11+, uv. gh CLI recommended. For native Windows (non-WSL), use the installer above. After installing, edit the auto-generated config template: diff --git a/README.md b/README.md index 4b4f837..720b6cb 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,29 @@ EMRG 是一个关于*自主进化*的实验。它能帮你写代码——读文 ## 🚀 快速开始 -### 🍎 macOS +### 📦 下载安装包(推荐,Phase 4 一键安装) + +到 [GitHub Releases](https://github.com/argszero/emrg/releases) 下载对应平台的安装文件,双击安装即可: + +| 平台 | 安装文件 | 说明 | +|------|---------|------| +| macOS (Apple Silicon) | `EMRG--macos-arm64.pkg` | 双击安装,GUI 到 `~/Applications/EMRG.app` | +| macOS (Intel) | `EMRG--macos-x64.pkg` | 同上 | +| Windows | `EMRG--windows-x64.exe` | Inno Setup 免 UAC,开始菜单快捷方式 | +| Linux | `EMRG--linux-x86_64.AppImage` | 首次运行自解压到 `~/.emrg/install/` | +| Linux (ARM64) | `EMRG--linux-aarch64.AppImage` | 同上 | + +安装包内置完整运行时(standalone Python 3.13 + 依赖 + git + gh + GUI),**干净机器(无 python/uv/git/gh/node)零前置依赖**,100% 离线安装。安装后: + +- GUI:启动台 / 开始菜单点击 **EMRG** +- TUI:`~/.emrg/install/bin/emrg`(Linux 另生成 `~/.local/bin/emrg` 软链) +- 首次启动引导填写 API key;会话内可直接执行 python 脚本 + +> **卸载**:macOS 运行"卸载 EMRG.app";Windows 控制面板卸载;Linux 运行 `~/.emrg/install/bin/emrg-uninstall`(或删 AppImage + 软链)。卸载保留 `~/.emrg` 中非 EMRG 的用户文件,并生成终止报告与数据快照。 +> +> **无 Apple 证书**:macOS 安装包未签名时,首次打开右键 → 打开(Gatekeeper 提示说明)。API key 配置除 GUI 外也可直接编辑 `~/.emrg/config.toml`(GUI 保存设置会重写 config,注释会丢失——高级配置建议直接编辑文件)。 + +### 🍎 macOS(源码安装) **一键安装:** @@ -58,7 +80,7 @@ curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | ba curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | bash -s -- purge ``` -### 🐧 Linux +### 🐧 Linux(源码安装) **一键安装:** @@ -72,7 +94,7 @@ curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | ba curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | bash -s -- purge ``` -### 🪟 Windows (WSL2) +### 🪟 Windows (WSL2,源码安装) **一键安装:** @@ -92,7 +114,7 @@ curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | ba curl -sSL https://raw.githubusercontent.com/argszero/emrg/master/install.sh | bash -s -- purge ``` -> 前置依赖(install.sh 会自动检测提示):git、python 3.11+、uv。gh CLI 推荐安装。 +> 源码安装前置依赖(install.sh 会自动检测提示):git、python 3.11+、uv。gh CLI 推荐安装。Windows 原生版(非 WSL)请用上方安装包。 安装完成后,编辑自动生成的配置文件即可使用: diff --git a/docs/design/roadmap.md b/docs/design/roadmap.md index 309053c..9fd261c 100644 --- a/docs/design/roadmap.md +++ b/docs/design/roadmap.md @@ -146,16 +146,24 @@ emrg/client/ **目标**:`.pkg` / `.exe` / `.AppImage` 一键安装,安装即完整,卸载彻底。 -**设计**(详见 `packaged-installer.md` §1-6): -- PyInstaller 三入口(`emrg` / `emrgd` / `emrg-gui`)+ git/gh 捆绑 -- 用户级安装(免 sudo);统一安装方式(不再区分开发者/非开发者) -- 卸载:终止报告 + 墓地快照 + 清理 + 自校验 +**设计**(详见 `phase4-installer.md` v3 定稿 + 120 轮 review R1-R120): +- 方案 C:standalone Python 3.13 + 源码 + lib/ 依赖 + git/gh 捆绑(1 套 python 三用,免 PyInstaller spec/frozen 坑) +- 安装布局 `~/.emrg/install/`(bin/ + git/ + lib/ + source/ + emrg-gui/),启动脚本 bin/emrg + bin/emrgd(bash + Windows .cmd) +- 统一卸载脚本 bin/emrg-uninstall(六步:停 daemon → 终止报告 → 墓地快照 → 白名单删除 → 环境清理 → 自校验)+ 平台卸载器 +- GUI 打包改造(isPackaged 分支 + AppImage 自解压 + ensureConfigTemplate 内联模板) +- CI 构建流水线(build-release.yml,4 平台 matrix:macos-15 / ubuntu-24.04 x64+aarch64 / windows-2025) +- 冒烟测试 12 项(临时 HOME,覆盖 daemon auth+pong / 会话核心 / 捆绑 git+gh / 会话内 python) **可与 Phase 3 并行准备**:spec 文件、CI matrix、签名流程可以在 GUI 开发期间搭好,GUI 一合入即出完整安装包。 **验收**: -- [ ] 干净机器(无 python/uv/git)双击安装 → 全部功能可用(TUI + GUI + 演化) -- [ ] `emrg uninstall` 清理彻底,无残留 +- [x] 干净机器(无 python/uv/git/gh/node)双击安装 → 全部功能可用(TUI + GUI + 演化)— 代码侧完成(build-runtime + smoke 12/12 本地实测;完整 E2E 待 CI 冒烟落地) +- [x] 卸载彻底,无残留 — bin/emrg-uninstall 六步 + 白名单 + 幂等(临时 HOME 实测通过;Windows/macOS 平台卸载器在 CI 验证) +- [x] 安装目录只读零写入(PYTHONDONTWRITEBYTECODE + 零 pip)— smoke §11 +- [x] 离线安装+首启+daemon+UI(Linux iptables 断网冒烟 CI)— smoke §12 +- [x] 会话内 python 脚本可执行(bash 工具走捆绑 python)— smoke §7 + +**实施 PR**:#360 启动脚本 / #361 卸载脚本 / #362 核心改造 / #363 GUI 打包 / #364 packaging 资产 / #365 CI workflow(合并中) ---