deepmodeling / deepmodeling/Uni-Lab-OS
[Workflow] 完善单编辑权 Authoring Interface 并通过合并门禁
- Dominant language
- Python
- Stars
- 177
- Forks
- 75
- Avg merge
- 1h 40m
- Merged PRs (30d)
- 5
Description
## 上游决策
- [D-117:Authoring 采用代码/画布单编辑权模式](https://github.com/Uni-Lab-OS/Uni-Lab-Core/issues/139)
- [Python/JSON Authoring 功能目录](https://github.com/Uni-Lab-OS/Uni-Lab-Core/issues/128)
- [Draft/Candidate/Apply 功能目录](https://github.com/Uni-Lab-OS/Uni-Lab-Core/issues/129)
## 当前实现审计
本地迁移 lineage 已完成但尚未发布/验收:
- 单工作区 OS Authority、每 Workflow 锁和多 Workflow 并存;
- Workflow-scoped Authoring aggregate、Draft PUT 双 CAS、server-owned Candidate、单 `candidate_hash` Apply;
- 纯 SQLite Apply、SSE invalidation、Draft 缺失/删除/移动等生命周期;
- v1 Workflow JSON/value schema 核心模块及资源预算主体。
因为目前没有团队可访问的 branch/PR full SHA,上述项目不能标为本 Issue 的 Accepted 交付。
## 实施范围
1. 先关闭 Workflow body budget 的剩余 Content-Type 绕过,合并完整 schema lineage。
2. 将现有纯/测试编译 Adapter 接到生产级、Authority-scoped Template Catalog。
3. 完成 v1 Workflow Python Annotation parser 与规范化输出。
4. 完成无副作用 Python→Candidate compiler、Graph transform 与确定性 `generate-python`。
5. 让代码模式和画布模式都通过相同 Draft/Candidate/Apply Interface 收敛;OS 不持久化前端模式和 Canvas Draft。
6. 保持 Apply 公共请求严格只有 `candidate_hash`;不接受客户端 Candidate 或历史三 token 请求。
7. 不修改 Backend,不在本 Issue 中实施前端。
## 交付规则
- 每个 round 使用新分支。
- 每轮先由独立 test author 从公共接缝写 RED,再由实现者转绿。
- 最终候选依次由至少三名独立 reviewer 评审。
- 每轮运行目标测试、`python -m pytest tests -q`、Ruff 与 `git diff --check`。
- 每轮生成中文趋势报告,记录生产/测试文件数和增删行、blocking 变化与下一轮策略。
- 前端待本 Interface 可合并后,在 `Uni-Lab-OS/uni-lab-fe` 独立分支实施。
## 验收
- [ ] body budget 对所有有请求体的 Workflow route 生效,不依赖 Content-Type。
- [ ] v1 Annotation/Schema、Catalog、compile、transform、generate-python 均通过公开 Interface 合同测试。
- [ ] Draft/Candidate/Apply 的单 Authority 合同无回归。
- [ ] 所有正式测试、静态门禁和三名独立 reviewer 通过。
- [ ] 候选 branch/PR 和 full SHA 对团队可访问,可合并到目标分支。
- [ ] 不包含 FE 或 Backend 修改。
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the public contract tests under tests and the existing Workflow body-budget routes; run python -m pytest tests -q to establish the baseline. Done means all listed Annotation, Schema, Catalog, compile, transform, generate-python, and Draft/Candidate/Apply contracts pass, along with Ruff, git diff --check, and the stated review gates.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, sqlite
- Domain
- api, backend, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 28/100