GCWing / GCWing/OpenBitFun

[Bug]: dead_code warnings for peer-host session turn drain helpers with no production callers

オープン 初心者向け
#2,569 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Rust
スター
2.3k
フォーク
231
平均マージ
2時間 46分
マージ済み PR(30日)
577

説明

## Summary

The upstream CI logs for `main` report three dead-code warnings in the peer host turn tracker. Evidence from GitHub Actions run [33035362609](https://github.com/GCWing/BitFun/actions/runs/33035362609) (reproduced across runs 33050974141 and 33047041028):

- `warning: method drain_session_turns is never used` --> `src/apps/cli/src/peer_host/state.rs:426:19`
- `warning: function session_tree_keys is never used` --> `src/apps/cli/src/peer_host/state.rs:662:4`
- `warning: function remove_completed_background_sources_for_session is never used` --> `src/apps/cli/src/peer_host/state.rs:737:4`

Cross-checking the crate: `PeerTurnTracker::drain_session_turns` has zero non-test references, and `session_tree_keys` / `remove_completed_background_sources_for_session` are called only by `drain_session_turns` itself and by tests that exclusively exercise it. Four unit tests exist solely to exercise `drain_session_turns`.

## Root Cause Analysis

- After the upstream transactional session rollback rework, session-level turn cleanup moved into the Agent Runtime rollback path. The old session-scoped drain entry point on `PeerTurnTracker` lost all production callers, and its two private helpers plus the four tests that only exercise it became dead weight.
- rustc therefore reports all three symbols as dead code on every full CI run of `main` (runs 33035362609 / 33050974141 / 33047041028).

## Proposed Fix

Delete the three dead symbols (`drain_session_turns`, `session_tree_keys`, `remove_completed_background_sources_for_session`) together with the four tests that exclusively exercise `drain_session_turns`:

- `draining_a_parent_session_after_root_completion_returns_the_active_child_only`
- `draining_a_child_session_releases_its_early_follow_up_reservation`
- `draining_a_sibling_child_does_not_release_another_childs_reservation`
- `explicit_drains_quarantine_removed_turn_ids`

Live peer-turn functionality (`PeerTurnDrain`, `interrupt_event_stream`, `drain_peer_turns`, `peer_turns_for_cancellation`, and the remaining 70+ peer_host tests) is untouched. No `#[allow(dead_code)]` suppression is involved.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Start in src/apps/cli/src/peer_host/state.rs at the three reported symbols and inspect the four named tests that exclusively exercise drain_session_turns. Verify the remaining peer-turn tests still cover live functionality, then run the peer_host test suite and a full build or CI-equivalent check. Done means the obsolete symbols and tests are removed without dead-code warnings or regressions.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
rust
領域
cli, tooling
issue の種類
リファクタリング
難易度
2/5
見積もり時間
1〜3時間
活発さ
活発
明瞭さ
明確に書かれている
初心者へのやさしさ
86/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。