GCWing / GCWing/OpenBitFun

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

Open Beginner friendly
#2,569 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
2.2k
Forks
229
Avg merge
2h 46m
Merged PRs (30d)
577

Description

## 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.

Contributor guide

Open the contributing guide

Research direction

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.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli, tooling
Issue type
Refactor
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
86/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.