feat(runtime): E2 实施——runtime 单真相 = flow_versions.runtime DB 列(ADR-001 §8 配套裁定落地)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Start by reading ADR-001 #325 and the referenced validate_definition, runtime_queues.py, and schedule_service runtime paths; then audit runtime writes and reads, including publication and scheduling. Implement per-runtime validation and make stale schedule projections observable, documenting the audit in DOC_CODE_MAP or an ADR note. Done means the four acceptance conditions are verifiable, including Go IR and DB runtime alignment.
Written by the indexing model from the issue text.
Description
优先级 P2 · 依赖:无
基线 HEAD = 6f6fb862
Summary
E2 是 ADR-001(#325)的配套执行裁定:runtime 单真相 = flow_versions.runtime DB 列,validate_definition 增 target_runtime 形参。Go 恢复生产可选 runtime(ADR-002 修订 2026-10-27,E1 反向修正——VALID_RUNTIMES 三值为准绳)后,E2 从「收敛前奏」变为多运行时一致性的地基:
现状 runtime 的写读面(多源并存):
flow_versions.runtimeDB 列(#300 起版本行携带,发布时盖章)——准真相;- 调度行冗余
runtime(schedule_servicedocstring:cron 派发进程读不到 console store,跨进程选池只能靠行上冗余;plaita#300 触发面池路由)——投影; resolve_runtime_queue使用点 env 解析(runtime_queues.py,A56-02 纪律:使用点求值)——派发面;- 前端 FlowEditor 硬编码
useState<'go' | 'python'>。
多运行时下的一致性风险:同一 flow 的 runtime 在「版本行 / 调度行冗余 / 触发时重解析」三处可能不一致(版本重发布换 runtime 而调度行未同步等)。
影响
- 流程重发布切换 runtime 后,既有调度行仍按旧 runtime 池派发(若调度行 runtime 冗余未随版本更新);
- E1 反向修正后 go/rust 流程成为正式形态,runtime 面的一致性从「过渡态容忍」升级为「生产要求」。
建议(ADR-001 §8/#325 验收口径)
validate_definition(definition, target_runtime=...)形参落地:IR 校验按目标 runtime 出具名差异(节点覆盖面已由 #300 门按池 manifest 把关,此处对齐 IR 层的 per-runtime 语义差异面);- runtime 写读单一化审计:枚举全部写点(发布盖章/调度创建/更新)与读点(派发选池/触发重解析),收敛到「DB 列为准,其余为带来源标注的投影」——投影过期(版本行 runtime 变更后调度行未同步)具名可观测(WARNING 或一致性对账,非静默);
- #325 验收条款落地:「Go flow 的 IR 与 DB 列一致(存量例外单列)」;
VALID_RUNTIMES三值维持(ADR-002 修订),E1 收敛判据(runtime=go 发布被拒)正式作废并从验收清单摘除。
验收条件:
-
validate_definition支持target_runtime形参且 per-runtime 差异具名; - runtime 写读面审计清单入 DOC_CODE_MAP 或 ADR 修订注记;
- 投影过期可观测(具名 WARNING/对账计数);
- #325 的 E2 验收三条可逐条核对。
边界
- 不动 #300 池门/点名(按池 manifest 把关的机制不变);
- 调度行 runtime 冗余保留(跨进程选池依赖它,不是删除而是「投影可观测」);
- Rust runtime 的生产化不在本单(oracle 定位不变)。
- Dominant language
- Python
- Stars
- 0
- Forks
- 1
- Avg merge
- 1h 55m
- Merged PRs (30d)
- 13
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from jeffkit/plaita
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 45/100
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 56/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 43/100
jeffkit/plaita#345 · 1 comment ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 4/5 1-2 days Newbie friendliness 43/100
Maintainers usually reply within 1 day
Similar issues
-
PAC Wording
Difficulty 1/5 Under an hour Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Harmony OPeNDAP SubSetter (HOSS) Geographic production rssmif16d 7 XYZ_PROV
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
nasa/harmony-autotester#372 ·
-
Add DomainOpen
Difficulty 1/5 Under an hour Newbie friendliness 65/100
disposable/disposable#318 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
developmentseed/titiler-cmr#270 ·
Maintainers usually reply within 1 day
-
Chart: a failed venv install is marked ready, and the 10Gi venv PVC is too small for itPossibly taken @andyne13 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day