Skip to content

fix(gui): say that zero loss runs can also mean 100% loss - #215

Merged
donislawdev merged 1 commit into
masterfrom
fix/loss-runs-tooltip
Sep 28, 2026
Merged

donislawdev merged 1 commit into
masterfrom
fix/loss-runs-tooltip

Conversation

@donislawdev

Copy link
Copy Markdown
Owner

Follow-up to #214, from its review.

Tooltip

tips.stat_loss_runs first said that a zero with "Losses in a row" set means the session was too short, and only a later sentence added the 100% case, where the counter stays at zero however long the session runs. The two sentences disagreed. It is now one either/or statement in en, pl and zh, matching the README loss_runs row.

Test: the steps around the outage, on one engine

test_the_shipped_lte_to_3g_outage_loses_everything checked only the 60 s step on a fresh core. It now applies the scenario's steps in turn to ONE engine through apply_settings, the way a session does: 45, 60, 68, 60 and 68 s, entering and leaving the outage twice. Packets are paced under the scenario's own speed caps, so every drop counted is a loss drop.

step loss asked delivered runs started
45 s 8% 7.5% 198
60 s 100% 100% 0
68 s 6% 6.3% 197
60 s 100% 100% 0
68 s 6% 6.4% 199

A new mutation entry (p = loss * r / room -> p = r) is caught by it, so the assertions around the outage can fail.

Not changed from the same review: building the path with pathlib (the surrounding tests use os.path.join, and fakes.ROOT is a string), and replacing random with secrets in the tests (the seeded generator is what they pin).

Run locally: internal_tools/guards.py --strong --run --lint (10 files, 148 passed) and tests/test_version_and_release.py.

🤖 Generated with Claude Code

The "Loss runs" tooltip said a zero with a run length set means the
session was too short, and only a later sentence added 100% loss, where
the counter stays at zero however long the session runs. It is now one
either/or statement in en, pl and zh, matching the README row.

The shipped mobile-lte-to-3g test now walks the steps around the outage
on one engine (45, 60, 68, 60 and 68 s) through apply_settings, with
packets paced under the scenario's speed caps so every drop is a loss
drop. The outage drops everything both times, and the steps around it
deliver their own loss in runs again (7.5, 6.3 and 6.4% measured). A new
mutation entry proves those assertions can fail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 28, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 40 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Advanced

Run ID: c8a183b5-9360-41cc-8171-775928ce81af

📥 Commits

Reviewing files that changed from the base of the PR and between 0022243 and ba31c14.

📒 Files selected for processing (6)
  • CHANGELOG.md
  • lang/en.json
  • lang/pl.json
  • lang/zh.json
  • tests/test_burst_loss.py
  • tests/test_mutation_registry.py

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@donislawdev
donislawdev merged commit d10f066 into master Sep 28, 2026
15 checks passed
@donislawdev
donislawdev deleted the fix/loss-runs-tooltip branch September 28, 2026 23:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant