Twinned from https://github.com/cfsh/ninefold/issues/1181 by tools/beads/import_github.py's reconcile pass.
Suggestions from ninefold-reviewer's review of #1178.
tools/github_live/'s Projects-v2 machinery. #1178 moved tools/web_frontend/server.py's design-task panel off project_view/project_item_list onto bd — it was the last real production caller of that surface (repo-wide grep confirms nothing outside github_live's own tests/fakes and live_smoke_test.py still calls project_view, project_item_list, project_create, project_close, project_link, project_item_add/_delete/_edit_status, project_field_*, project_view*, or imports github_live.tasks). notes/design-doc-tracking.md:150-153 already names this as the next step once server.py "finishing its own migration off it" — that line is what #1178 finishes. Worth a dedicated cleanup PR: delete tools/github_live/tasks.py + tasks_test.py, the project_* methods on github_live.gh.Gh + their gh_test.py/fakes.py entries, and whatever's left of live_smoke_test.py once its Projects half goes. DEV_PRINCIPLES B12. (Also update notes/design-doc-tracking.md:147-154, which becomes stale here too — see the review's C-notes on #1178.)bd.show() call in fetch_design_task_panels. tools/web_frontend/server.py's fetch_design_task_panels builds status_by_id from one upfront bd.list_issues() call (server.py:328-329), then calls bd.show(epic_id) again per live design doc (server.py:347) to check the same epic's status — a second subprocess call (with --include-comments, since Bd.show() always asks for it) for data already in status_by_id. fetch_bd_epics's own docstring claims this file mirrors fetch_design_task_panels's "single upfront bd.list_issues() ... for the same reason [a per-issue call would multiply for nothing]" — that claim doesn't actually hold for fetch_design_task_panels itself. Only 2 docs carry a **Beads:** pointer today so the cost is trivial, but it'll scale with every future live doc, and no existing test catches it (test_one_list_issues_call_regardless_of_doc_or_task_count only counts list_issues calls, not show calls). Fix: replace the bd.show(epic_id) check with status_by_id.get(epic_id) in (None, "closed").None.
No comments.