[Workflow] Phase 02H:实现 Task input preflight 与 Handle binding
@TablewareBox がすでに取り組んでいます。
2026年7月31日 から。
評価
この issue はまだ評価されていません。
説明
上游功能与决策
- 主功能目录:Workflow Input/Output 与值 Schema
- 关联功能目录:ResourceSlot、Material、Site 与调度占用
- 当前有效合同:D-059、D-060、D-062、D-063、D-065、D-082~D-086
入口基线
integration/workflow-task-runtime:01380449868ccf334f4da1a28c7f6f946fb540d1- 02D~02G 均已有 round trend,并以非 squash 方式并入上述基线。
- 实现分支:
migration/02h-task-input-preflight - 实现前冻结:
docs/developer_guide/workflow_task_runtime_migration/rounds/02h-task-input-preflight-design.md
本轮范围
- 从 persisted
Workflow.meta_data.unilab.input_contract读取 ordered v1 Input Contract。 - 在任何
WorkflowTask/WorkflowNodeJob写入前完成 closed unknown/missing/default/null/type/constraint preflight。 - 严格规范化 scalar、opaque JSON object、同质一维 list 及 nullable/default 语义,不做字符串、bool/int 等便利 coercion。
- 将完整 resolved input 写入
WorkflowTask.input,并随既有workflow_snapshot冻结合同与 binding。 - 以真实 target
WorkflowHandleTemplate.uuid解析WorkflowNode.meta_data.unilab.input_bindings,把值写入 Task-scoped Jobparam;不得修改 persistedWorkflowNode.param。 - 定义可注入的 ResourceSlot resolver port 与 400/404/409 失败分类合同测试。
明确停止线
- 本轮不实现 production Material lookup、Material/Site 持久权威、Task Reservation、Job Claim、Disposition 或软删除保护;这些属于后续 M1。
- M1 完成前,任何非空
ResourceSlot/list[ResourceSlot]Task input 必须在 Task/Job 写入前 fail closed。 - 不允许旧 Inventory、远程 Backend、字段名 heuristic、warning-only 或任意 fallback 使 Material-backed Task 进入执行。
- 本轮不修改 Backend 或前端,也不扩展已冻结共享 wire DTO。
验收与 provenance
- 严格按仓库
Workflow Migration Round Gate:fresh branch;恰好一个独立 test author 在独立 worktree 先提交 RED;保留测试提交 provenance;完整目标测试、全仓测试、Ruff/format/static 与git diff --check;恰好一个未参与测试/实现的独立 reviewer 固定精确候选 SHA。 - 覆盖 unknown/missing/default/null、strict scalar/object/list、约束、合同/binding closed shape、provider ambiguity、required Handle、debug-scope pruning、snapshot immutability 与零 partial write。
- 记录 tested SHA、命令结果、test author、reviewer、finding disposition 和中文 trend;仅在全绿后非 squash 本地合并到
integration/workflow-task-runtime。 - 未经明确授权不 push。
- 主要言語
- Python
- スター
- 181
- フォーク
- 78
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
deepmodeling/Uni-Lab-OS のほかの issue
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
deepmodeling/Uni-Lab-OS#327 · コメント 1 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
deepmodeling/Uni-Lab-OS#326 · コメント 1 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
deepmodeling/Uni-Lab-OS#325 · コメント 1 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
deepmodeling/Uni-Lab-OS#324 · コメント 1 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
deepmodeling/Uni-Lab-OS#323 · コメント 1 件 ·
deepmodeling/Uni-Lab-OS の issue をすべて見る
似ている issue
-
難易度 1/5 1〜3時間 初心者へのやさしさ 78/100
QuantConnect/Documentation#2838 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
awslabs/route53-dynamic-dns-with-lambda#67 · コメント 1 件 ·
-
`SubAgents` returns a child run's `DeferredToolRequests` to the parent as a successful tool resultオープンbug pkg:harness
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
pydantic/pydantic-ai#12405 ·
メンテナーはふだん 1 日以内に返信
-
good first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
good first issue help wanted
難易度 1/5 1時間未満 初心者へのやさしさ 82/100