The `graphlemon-node-90c6ca9d21eb4678ab122e2f5bd011fd` (planner) workflow finished. It produced a BRD document diagnosing and scoping a fix for the Graph console: **Problem confirmed:** Clicking a row in "Graph 运行历史" (`v_graph_console`) just switches the task selector (`onSwitchToTask`) instead of opening that specific run's details — because no run-detail page/route exists yet. A stale code comment even documents this as "intentional." **Scope of the fix (BRD-level, not yet PRD/SDD):** - FR-1: New route `#/runs/:run_id` - FR-2: Run detail page reusing existing components — `renderGraphVisualizerPanel`/`mountWorkNodeClickExpand` for the DAG/node view, and the existing `mountLogViewer`/WS-tail-then-static logic for per-node logs (nothing new to build there) - FR-3: New backend query/endpoint to fetch a single run by `run_id` (current `get_task` returns the whole task's runs, wrong shape/payload — though `task_query._work_nodes_for_run` is already `run_id`-scoped and should be reused, not reimplemented) - FR-4: Minimal change to `gc_runs_list`'s click handler only, plus removing the now-stale "no run detail route" comment - Explicitly out of scope: the list endpoint itself, log-viewer/backend internals, and multi-run comparison UI This is a BRD only — no code was written. Next step in the pipeline would be PRD/SDD refinement before a Coder task picks it up.