2026-07-16 14:33:43 +08:00
|
|
|
|
# 当前实现状态
|
|
|
|
|
|
|
|
|
|
|
|
> 本文是可覆盖的**项目级快照**,记录代码与任务的现实状态,帮助 AI coding agent 避免只看计划而忽略仓库现状。
|
|
|
|
|
|
> 执行记录写进各任务文件(`docs/tasks/T-<编号>.md`)的 `## 执行记录`,不要在本文重复维护完整执行日志。
|
|
|
|
|
|
|
|
|
|
|
|
## 职责边界
|
|
|
|
|
|
|
|
|
|
|
|
- [`tasks/`](tasks/README.md)(`docs/tasks/T-<编号>.md`):任务规格、依赖、状态(frontmatter)和执行记录,一任务一文件。
|
|
|
|
|
|
- [`06-tasks.md`](06-tasks.md):只读路线图,维护阶段划分、里程碑和待办池。
|
|
|
|
|
|
- [`../progress.md`](../progress.md):可选历史归档 / 项目级大事记,不逐任务追加。
|
|
|
|
|
|
- `current-state.md`:当前快照,可覆盖更新当前目录、当前命令、已完成摘要和下一步。
|
|
|
|
|
|
|
|
|
|
|
|
## 当前快照
|
|
|
|
|
|
|
2026-07-18 14:23:02 +08:00
|
|
|
|
- 日期:2026-07-18
|
2026-07-18 15:18:29 +08:00
|
|
|
|
- 阶段:Phase 2 已完成(T-201~T-204);Phase 3 的 T-301 可恢复下载队列已完成;审核整改 T-604~T-611 已完成,T-302 继续暂后置
|
2026-07-16 21:27:52 +08:00
|
|
|
|
- 技术栈:根 Go 1.25 workspace 只纳入 core/app-modern,`app-win7/go.work` 独立纳入 core/app-win7;版本闸门证明 modern Gio v0.10.1 与 win7 Gio v0.6.0 不交叉解析
|
2026-07-18 15:18:29 +08:00
|
|
|
|
- 生产代码:core 已有 Catalog/本地状态/存储、共享 Windows 安全相对路径策略、安全 ZIP 解压/回滚原型、发布稳定只读 generation 的无 IO 软件列表模型、按 key in-flight + 流式有界读取 + 32 MiB/256-key LRU 的可信图标缓存、图标 Load/Decode 事件发布用例、有界 application event relay,以及默认并发 2 的持久可恢复下载队列;modern/win7 主循环已接 relay/Invalidate,AppShell 已实现搜索/分类/视图、惰性列表、详情右栏、完整图标失败 identity 生命周期与仅 `unsafe_cache` 可见的安全 locator/人工恢复提示,并按 root/header/catalog/detail/style 同 package 镜像职责拆文件
|
|
|
|
|
|
- 测试:core 覆盖 Catalog、列表快照 generation/零复制、SemVer/12 状态、本地安装记录、Windows dot-space/设备名/Unicode 折叠路径攻击、ZIP destination 包含性、图标并发/取消/读取边界/LRU、真实目录/symlink fail-closed 与 cache→`unsafe_cache` event、relay 背压与关闭、下载并发/暂停/取消/重试/Range/断连/恢复/事件失败与文件身份替换;两个 app 覆盖 Editor/视图/分类/行/恢复/关闭接线、500 项 viewport、AppID 控件与分类控件生命周期、详情上下文、空状态语义、UI drain 前后、图标失败身份生命周期与 `unsafe_cache` 详情语义;安装恢复矩阵保持通过
|
2026-07-16 23:56:19 +08:00
|
|
|
|
- 数据:`schemas/` 已有 manifest/app.json/installed-app.json/download-task.json v1 Schema并注明 Windows 路径运行时权威规则;`testdata/catalog/` 有公开虚构清单样例;`testdata/zip/` 与 `testdata/download/` 记录运行时生成的攻击/传输矩阵
|
2026-07-16 15:51:34 +08:00
|
|
|
|
- 标准启动路径:`./init.sh` / `./init.ps1`(同步依赖、执行完整 Phase 0 闸门、打印双目标构建命令)
|
|
|
|
|
|
- 标准验证路径:`bash scripts/verify_phase0.sh` / `./scripts/verify_phase0.ps1`
|
2026-07-16 14:33:43 +08:00
|
|
|
|
- 版本管理:git 已初始化,main 分支,远端 origin 为 Gitea `opc/soft_quay`;harness 文档已提交
|
2026-07-18 15:18:29 +08:00
|
|
|
|
- 当前 blocker:无;T-611 已闭合 unsafe cache 诊断且自动 quarantine 仍需独立威胁模型。下一步按 `docs/review/phase1-security-review.md` 最终处理顺序第 2 项落成后续任务(预计 T-612):在 `zip.OpenReader` 前增加包大小与中央目录/EOCD 预扫描边界;T-302 继续后置到该阻断项关闭
|
2026-07-16 14:33:43 +08:00
|
|
|
|
|
|
|
|
|
|
## 当前目录要点
|
|
|
|
|
|
|
|
|
|
|
|
| 路径 | 状态 | 说明 |
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
| `docs/` | 已有 | harness coding 文档集(本次初始化完成) |
|
2026-07-18 15:18:29 +08:00
|
|
|
|
| `docs/tasks/` | 已有 | Phase 0~2、T-301 与 T-604~T-611 已完成;Phase 1 后续审核整改尚未编号,T-302 暂后置 |
|
2026-07-16 15:51:34 +08:00
|
|
|
|
| `scripts/` | 已有 | harness 治理、core 边界、Go 版本检查与 Phase 0 双平台验证入口 |
|
2026-07-17 10:21:44 +08:00
|
|
|
|
| `core/` | 已建 | Go 1.20 兼容;已有正式 Catalog、本地状态/存储、共享 Windows safepath、列表模型、有界并发图标缓存、图标事件/relay、可恢复下载队列与 Phase 1 安装安全原型 |
|
2026-07-18 14:23:02 +08:00
|
|
|
|
| `app-modern/` | 已建 | Go 1.25.0 + Gio v0.10.1;Modern AppShell 已接入虚拟列表、详情、图标事件 drain/过期拒绝和内存 ImageOp,并拆为五类 shell 职责文件 |
|
|
|
|
|
|
| `app-win7/` | 已建 | Go 1.20 + Gio v0.6.0;Legacy AppShell 已接入低成本列表、详情、图标事件 drain/过期拒绝和内存 ImageOp,并保持同名职责文件与版本差异 |
|
2026-07-16 19:49:06 +08:00
|
|
|
|
| `schemas/` | 已建 | `manifest.schema.json`、`app.schema.json`、`installed-app.schema.json` 与 `download-task.schema.json` |
|
|
|
|
|
|
| `testdata/` | 已建 | 包含 Catalog 假数据、ZIP 恶意矩阵与下载协议测试说明;后续任务继续扩展 |
|
2026-07-16 14:33:43 +08:00
|
|
|
|
|
|
|
|
|
|
## 任务状态
|
|
|
|
|
|
|
|
|
|
|
|
任务状态以 `docs/tasks/` 各任务文件 frontmatter 的 `status` 为准。本节只写项目级摘要:
|
|
|
|
|
|
|
2026-07-18 15:18:29 +08:00
|
|
|
|
- 已完成:Phase 0 的 `T-001`~`T-004`;Phase 1 的 `T-101`、`T-102`、`T-103`;Phase 2 的 `T-201`~`T-204`;Phase 3 的 `T-301`;审核整改 `T-604`~`T-611`。
|
2026-07-16 19:49:06 +08:00
|
|
|
|
- 正在进行:无。
|
2026-07-18 15:18:29 +08:00
|
|
|
|
- 下一个可领取任务:暂无已落成 TODO;下一步按 Phase 1 最终处理顺序第 2 项落成中央目录/EOCD 预扫描边界任务(预计 `T-612`)。
|
2026-07-16 14:33:43 +08:00
|
|
|
|
|
|
|
|
|
|
## 当前可运行内容
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-07-16 15:51:34 +08:00
|
|
|
|
# 统一依赖同步 + 完整 Phase 0 验证:
|
2026-07-16 15:28:13 +08:00
|
|
|
|
./init.sh
|
|
|
|
|
|
# Windows PowerShell 使用 ./init.ps1
|
2026-07-16 14:33:43 +08:00
|
|
|
|
|
2026-07-16 15:51:34 +08:00
|
|
|
|
# 直接运行验证闸门:
|
|
|
|
|
|
bash scripts/verify_phase0.sh
|
|
|
|
|
|
# Windows PowerShell 使用 ./scripts/verify_phase0.ps1
|
2026-07-16 14:33:43 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 开始编码前检查
|
|
|
|
|
|
|
|
|
|
|
|
开始任意任务前:
|
|
|
|
|
|
|
|
|
|
|
|
1. 读仓库级 agent 规则文件 `AGENTS.md`。
|
|
|
|
|
|
2. 读 `docs/00-ai-start-here.md`。
|
|
|
|
|
|
3. 读 `docs/05-coding-rules.md`。
|
|
|
|
|
|
4. 在 `docs/tasks/` 找到 frontmatter `status: TODO` 且依赖均 `DONE` 的任务文件;暂无任务时,先按 `docs/06-tasks.md` 路线图落成任务文件。
|
|
|
|
|
|
5. 在独立分支 / worktree 把任务改为 `DOING`。
|
|
|
|
|
|
|
|
|
|
|
|
## 维护规则
|
|
|
|
|
|
|
|
|
|
|
|
当实际代码状态发生变化时,同步更新本文件:
|
|
|
|
|
|
|
|
|
|
|
|
- 新增或移动入口文件。
|
|
|
|
|
|
- 初始化框架或模块。
|
|
|
|
|
|
- 新增可运行命令。
|
|
|
|
|
|
- 发现文档和代码现实不一致。
|
|
|
|
|
|
- 阶段、项目级 blocker 或可领取任务摘要发生需要跨会话保留的变化。
|
|
|
|
|
|
|
|
|
|
|
|
同时注意:
|
|
|
|
|
|
|
|
|
|
|
|
- 任务长期状态改在对应任务文件的 frontmatter;每轮执行记录、验证命令、阻塞点和关键决策写进该任务文件的 `## 执行记录`。
|
|
|
|
|
|
- 本文件只保留当前快照,不保留完整历史。
|