Files
core/.trellis/tasks/10-05-install-entry/implement.md
T

71 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 执行与证据
## 授权与起点
- 已在方案与「先实现 install、统一新源」说明之后授权实施并同意任务登记,不重复询问。
- 主仓库 a2e0436、skill 27ac8f2 起点均 clean。
- 备份 target/install-before.WTVfLC/core.tar.gz 与 skills.tar.gz。
## 顺序与所有权
1. [x] trellis-implement:Python 安装器、生成器、根 install、Rust ReleaseSource、根 test/ 定向测试及既有验收 harness 路由。不修改文档、spec、Git 元数据、版本号。
2. [x] 主会话:README、安装说明、SDK 发布说明与规范;真实签名包的新入口自有镜像验收,不修改全局服务。
3. [x] trellis-check:独立检查完整 diff,修复确有的安装/边界/测试缺陷,核验生成物一致性。
4. [x] 主会话:关键证据、必要复验、diff/资源清理、实现验收收口;准确说明线上端点与新包未发布。提交归档随后续迁移统一处理。
## 定向验证
- bash -n install;实际 Bash 文件/管道帮助和失败路径。
- Python onboarding installer 与新增入口定向测试。
- cargo test --offline -p dever-cli --lib toolchain::release_source;修改文件格式检查,不跑全量。
- 真实旧 0.1.1 签名基础包,通过 bash install --release ... --system-root ... --no-start 安装自有镜像。旧二进制不证明新源线上 update。
- 生成器 --check、git diff --check、skill 文档检查。
## 结果
- Python 定向 `python3 -B -m unittest discover -s test/onboarding -p 'test_install*.py' -v`:19/19 通过。包含实际 Bash、真实 Ed25519、独立公钥、字面参数与退出状态、非 root UID help 和进程内 sudo 拦截;没有实际提权/全局服务操作。
- Rust `cargo test --offline -p dever-cli --lib toolchain::release_source`:10/10 通过。实际本地 HTTP 传输断言 latest 两份元数据后从签名准确版本取 archive。复用 target/debug,未跑全量。
- 原有作者 rustfmt 对修改 Rust 文件检查通过。主会话复核生成 --check、bash -n、主/skill diff --check 和 skill quick_validate 均通过。
- `test/onboarding/verify_install_entry.py` 真实 0.1.1 签名资产验收 4/4 通过,报告 `target/install-entry-acceptance.json`:Rust 验签解包准备、独立 Bash 首装且 core/skill 对应、管道重装保持核心与选择、坏签名拒绝且原 journal/core/bootstrap 不变。自有 /dev/shm 临时目录已清理,没有启动全局服务。
- 初次验收报告保留为 `target/install-entry-acceptance-initial.json`。首装通过后,重复安装因测试误要求 active-version 字节完全相同失败;实际 `bootstrap/transaction.rs` 明确追加激活记录。仅修正验收:重复安装比较实际选中版本与负载字节,失败安装仍严格比较 journal 字节。生产安装行为未放宽,重跑完整4阶段通过。
- 根 install 为 13,938 字节,摘要 `3cab983b5093c4a7075f28707042c672a00ce754888ac3e7c9f85853d40ae7eb`;真实验收使用旧版负载,不表示新版本构建、线上安装或线上 update。
- 任务分支 `feat/install-entry`;未提交、推送、改 Git remote 或合并 skills 子仓库。后续迁移发布需新版本 core/launcher/daemon 与完整配套 skill,部署匿名 HTTPS 安装/资产路由。
- 独立 trellis-check 最终无阻塞、未修改产品文件;再次核对生成脚本与真实验收报告 SHA 完全一致,认可 bootstrap 同版本激活记录的测试边界。全部本次验收已满足,未跑全量 clippy、全量 CI 或线上安装。
## 合仓与发行阶段(2026-10-05)
用户已批准前述后续交付方案,继续使用本任务记录,不重复请求创建任务或实施批准。
- [x] 主会话:当前源码和 Git 历史备份;skills 普通目录化;新远端核验、提交推送;同步安装/源码文档。
- [x] 发行 worker:准备新版本精简发行,复用既有制作和验收脚本,报告实际包体;不操作 Git、全局安装或服务。
- [x] 主会话:核对新包及匹配 skill,准备完整静态部署目录,完成隔离本地安装验收。
- [ ] 发布静态端点并完成真实 HTTPS 首装/update 验收;缺少站点部署接入,不能用本地结果代替。
- [ ] 线上验收完成后归档;当前保持 in_progress。
初始只读证据:新 SSH 仓库 ls-remote 成功且无 refs;HTTPS /shemic/dever/install 返回 404。已询问站点部署方式,等待期间继续合仓与可离线完成的新包准备。系统盘剩约 368 MiB,/dev/shm 约 2.4 GiB,优先复用资产和缓存,不能删除其它项目或部署数据。
### 当前证据
- 备份目录 `target/migration-backup.pBIq3U`:当前源码 tar.gz(不含构建物、Git元数据、密钥与本地配置)、完整 `core.bundle` 和 `skills.bundle` 均验证通过;原 `skills/.git` 移入此目录,保留本地历史和配置。
- `skills/` 已从 gitlink 改成主仓库 21 个普通文件,删除唯一 `.gitmodules` 及本地 submodule 配置。`origin` 已切至新 SSH 地址,旧远端以 `github` 保留;没有向旧远端推送。
- 生成 install `--check`、Bash语法、skill结构和diff检查通过;同仓说明、模板和新源文档已同步。
- 此前 skill约束和CLI接线一并进入本版:`check/run/build` 共用 C016;CLI新增5项及既有1项定向回归通过,CMS普通/Markdown静态check均通过(各7条既有W001)。不扩大冗余判定、不声称所有CRUD包装都可识别。
- 发行版本设为0.1.2,core/launcher/daemon在自有tmpfs目录串行离线重建;不重编未改的runtime。为本轮发行空间,Cargo仅清理本地dever-cli dev构建产物,释放236.7MiB,可从源码恢复;旧release、作者输入和备份保留。
### 0.1.2 合仓、构建与验收结果
- 产品提交 `19f122b4b4f7cf977059d127db6971c5dfc07b1d` 已推送新 `origin/main`,远端默认分支为 main;保留 v0.1.0、v0.1.1 标签。从新 SSH 地址重新克隆,未使用 submodule 即获得全部 skill,生成入口、Bash语法及skill结构检查通过;临时克隆已清理。
- core/launcher/daemon 真正离线 release 重编完成,源码和skill固定在上述提交;依赖与runtime实现未改。已核对8116项作者输入,8份未变扩展与0.1.1字节相同并硬链接复用,ARM应用target按0.1.2重新组包。这仍是 Linux x86_64 编译器发行,宿主要求 glibc >= 2.39。
- 基础包 `target/release-0.1.2/assets/dever-linux-x86_64.tar.zst` 为 **117,507,272字节(112.064MiB)**,仅比0.1.1增加26,064字节(25.45KiB)。解压600,851,668字节。基础包SHA256为 `d8e7628d42688628b5d3007fa074e3aad75607917bc34cb34fbebed62b40ee75`。
- 主会话复核新二进制摘要与构建记录一致,启动器和daemon内嵌新官方源;core增4,288字节,启动器和daemon分别减256及320字节,未添加新依赖。
- `target/release-0.1.2/acceptance.json`:8/8通过。真实签名包隔离首装、基础包排除可选扩展、版本入口、普通和Markdown模板的new/fmt/check/最小test/CMD/build、skill同步、缺target离线报错,以及移除源码/机器目录后的独立程序运行。
- `check-acceptance.json`:2/2通过,发行包check实际拒绝不可达app并返回C016,新建项目模板与冻结skill一致。
- `install-entry-acceptance.json`:4/4通过,实际生成的Bash首装、管道重装、坏签名拒绝且保留已有安装。此处为本地官方签名资产验收,未声称真实HTTPS或线上update通过。
- 主会话使用独立公钥重新验证manifest签名,流式复算全部14份发行文件的大小和SHA256;manifest中21份skill文件与本仓源码逐一一致。可部署目录 `target/release-0.1.2/public/` 包含 `install`、`dist/0.1.2/` 全部资产及 `dist/latest/` 两份匹配元数据;资产用硬链接,不额外复制约597MiB。
- 构建输入、实际体积、构建日志分别保存在同目录 `provenance.json`、`sizes.json`、`build.json`。自有daemon、tmpfs挂载、临时私钥副本与本轮Cargo目录已清理。未运行全量CI、三生态重验、长测或宿主全局服务操作。
- 独立发行复核无新增阻塞:源码提交、manifest、安装脚本与验收报告一致,public目录无私钥、作者配置、测试记录或符号链接。`v0.1.2` 注释标签已固定到产品提交19f122b并推送新origin;Git标签不代表HTTPS端点已部署。
### 待上线的唯一交付阻塞
2026-10-05最后复核,`https://git.dever.cc/shemic/dever/install` 与 `/shemic/dever/dist/latest/dever-linux-x86_64.manifest.json` 均为HTTP404。已向用户询问SSH主机、端口、账号与静态目录,或既有部署配置位置;目前仅有Git SSH访问,不能据此推定服务器shell/路由配置。发布时将上述public目录映射至 `/shemic/dever/`,然后在自有隔离安装中验收真实HTTPS首装与update。部署完成前不归档、不标为全部交付完成。