3.1 KiB
3.1 KiB
id, title, phase, deps, status, created, vikunja_task_id, context_ref, work_branch, needs_device, needs_human_review, write_paths
| id | title | phase | deps | status | created | vikunja_task_id | context_ref | work_branch | needs_device | needs_human_review | write_paths | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| T-003 | 建立双端统一初始化与验证入口 | 0 |
|
DOING | 2026-08-03 | 20 | bcec012 |
task/t-003-unified-entry | false | false |
|
问题 / 背景
T-001 与 T-002 已建立两端可运行骨架,但仓库根 init.ps1 / init.sh 仍沿用占位命令:Windows 默认 Python 3.10 不满足 client 的 Python 3.11+ 下限,桌面端仍按 requirements.txt 安装而不是规范的 editable package,启动命令也指向不存在的 src/main.py。统一入口若不能主动验证工具链和两端基线,后续任务会在错误环境上叠加实现。
关联需求与交互
- 功能:Phase 0 工程地基,只建立开发安装、验证与启动提示。
- 用户故事 / 交互:不改采购服务或采购工具产品界面。
- 架构 / API:不改业务接口、数据模型或任何采购安全边界。
方案
- 完善 init.ps1:显式选择并验证 Python 3.11+,创建或校验 client/.venv,以 editable 方式安装 client,再运行两端离线测试、静态检查和构建。
- 完善 init.sh 的等价流程与缺失工具提示;在无 Windows 工具链的 WSL 环境只允许明确失败,不得把跳过当成功。
- 两端目录、Go、Python、venv 或必要文件缺失时输出可操作原因并返回非零;任何门禁失败立即停止。
- 成功后只打印真实启动命令:采购服务 go run ./cmd/server;采购工具虚拟环境 Python -m cmbuyer_client。
- 同步入口、技术栈与当前状态文档;不修改 admin/client 业务代码。
验收要点
- Windows 一条命令完成两端安装、admin test/vet/build、client unittest/compileall 与上下文门禁。
- 不会使用 Python 3.10 创建采购工具环境;已有低版本 venv 会明确失败并给出修复提示。
- editable install 与启动模块和 T-002 已验证契约一致。
- init.sh 至少通过 bash 语法检查,且与 PowerShell 入口保持同一边界。
- 不连接真机,不实现采购、下单或付款逻辑。
执行记录
(暂无)
边界
- 不修改
admin/、client/生产代码、数据库迁移、业务 API、产品界面或真机流程。 - 不连接设备,不编写拼多多页面判据、下单、提交订单、付款或支付逻辑。
- 统一入口只能执行安装、离线验证、构建和打印启动命令;不得在失败时静默跳过任一已初始化端。
- 采购工具必须使用 Python 3.11+ 虚拟环境和
pip install -e .;已有低版本虚拟环境必须明确失败, 不得继续运行或自动覆盖用户环境。 init.sh在缺少 Windows 侧工具链的环境应明确非零退出;语法通过不等于在 WSL 已完成产品验收。- 不放宽
docs/04-architecture.md第四节安全边界,入口脚本不得触发任何业务动作。