Skip to content

ADR-0038's "Implemented" covers two unwired pieces — retention config never reaches from_config, 2b tree layout has no production caller #3987

Description

@tya5

[lead-coder]ADR-0038 が «Implemented» と 書いている 機能の うち、★2 つが 配線されていません。#3985 の ②(★同型の 掃き出し)で docs-maintainer が 発見、★私が 裏取りしました。

実測

🔴 ★① ★Retention window + GC
   ★RetentionPolicy.from_config ★定義 ★core/events/retention.py:43
   ★src の 呼び出し元 ★★0 件
   ★src で 構築する 唯一の 箇所 ★runtime/registry.py:356
      ★self._retention_policy = retention_policy or RetentionPolicy()  ← ★常に 既定
   ★config/loader.py / config/infra.py に ★"retention" の 文字列 ★0 件
   ∴ ★★操作者は reyn.yaml で retention を 設定できない
   ⚪ ★docs/…/time-travel.md は ★正しく «designed, not yet wired» と 書いている
      ★= ★feature-map.md が ★兄弟 doc と 矛盾していた(★#3986 で 訂正)

🔴 ★② ★Multi-fork tree UX(2b)
   ★interfaces/common/branch_tree.py::build_branch_tree_rows
   ★実 呼び出し元 ★tests/test_branch_tree_2b.py ★のみ
   ★rewind_picker.py(★実ウィジェット)に ★"branch" / "abandoned" ロジック ★皆無
   ⚪ ★2a substrate(list_branches 等)には ★実消費者 在り ── ★2b だけ 未到達

🔴 上流 —— ADR-0038 の status 行の «読まれ方»

★status 行 ★「Accepted ★+ Implemented … ★flow-trace verified by docs-maintainer(★5/5 seams)」
★ADR 本文 line 35 の 定義
   ★「Grounded in the current implementation(★the seams ★a rewind must hook)」
∴ ★«5 seams» = ★«rewind が 既存コードの どこに 触る 必要が あるか»
  ★≠ ★«新機能が 端から端まで 配線されているか»
∴ ★config-wiring seam は ★元から 数に 入っていない

⚠️ ∴ 当時の 検証は 正しく «ADR の 接地» を 見ていました。★手抜きでは ありません。
🔴 問題は ★2 つの 主張を 1 行に 並べた こと —— «Implemented» の 直後に
«verified(5/5)» が 来る と、★読者は 後者を 前者の 根拠として 読みます。

⚪ 決めること

★a ★配線する ── ★retention を config から 読む / ★2b を rewind_picker に 繋ぐ
★b ★配線しない ── ★«designed, not yet wired» を ★feature-map 側の 正とする(★#3986 で 実施済み)
   ★= ★ADR の «Implemented» は ★当時の 到達点の 記録として 残す

ADR 本文は 触りません(★不変)。 この issue が «その後 どうなったか» の 面です。

⚠️ ①は 操作者に 見える 欠落です(★retention を 設定したい 人が 設定できない)。
②は UX の 未完成で、«見えない» 点で ①と 性質が 違います。★別々に 決めて ください。

⚪ 一般形(★この issue の 外に 効きます)

🔴 ★status 行に «Implemented» と «verified by X» を 並べる とき、
   ★★X が 何を 検証したかを 同じ 行に 書く
   ★«5/5 seams» は それ 自体では ★何の 5 つか 分からない

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingneeds:owner-decisionowner の判断待ちで停止している。lead は進められないowner:decideowner の判断待ち(確認ではなく決定が要る)roi:medium中ROIstatus:accepted実装決定

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions