Repository navigation
Release v0.3.3: whose link is the problem, and <1ms - #165
Merged
Merged
Conversation
Bring the README fix from main into develop
The Ratatui showcase asks for the terminal alone: no window, no camera, the
subject filling the frame and motion that is the interface's own. The
Screen Studio demo zooms and pans inside a window with a wide margin, so a
second recorder draws the same frames flat at 100x22, 1000 px wide.
It plays one call through: alone with the invite code, bob and cem join,
bob talks down a taut string, the reply is typed, the link falls back to a
relay and slows the pulse, audio breaks up and the string frays, then the
audio screen opens with a live meter. Output goes to target/showcase/
because the showcase asks for media to live outside the repository.
ffmpeg writes every GIF frame whole (~15 MB), so Pillow folds identical
frames and writes only what changed, keeping ffmpeg's palette minus its
transparency green, which the half-covered bottom pixel row was matched to.
dropped_at becomes pub(crate) so the fray can be ended on cue.
cargo test --lib -- --ignored --nocapture showcase_gif
Mechanical: whitespace and line breaks only, default rustfmt settings. cargo test (303 + 4 + 14 + 7), clippy -D warnings and the release build are unchanged.
A separate fmt job runs cargo fmt --all --check once, and the fixed-name gate now requires it alongside the test matrix, so the branch ruleset enforces it without naming a new check. .git-blame-ignore-revs lets blame skip the one-time formatting commit.
style: format the codebase with cargo fmt and check it in CI
Dropouts are measured in our own playback and do not say whose audio was late. With a relayed peer in a crowded call the header read 'audio dropping CHOPPY emre 340ms', which blames emre for something we cannot pin on anyone. While the string is frayed the header and the far can go back to the unnamed reading; the roster still shows each person's own link.
…#93) A connection can outlive its person by a moment: it closes on the next membership update and is only read again on the next tick. Until then a row could keep someone's old round trip, and the chip could say RELAY because of a relayed peer who had already left while naming a slow direct one. The link table is now pruned to the people in our voice channel on every reading and on every roster change, and the direct / relayed / worst figures are counted from what is left. Leaving the call empties it.
feat(ui): show whose voice link is the problem (#93)
millis() truncated, so two instances on one machine or peers on a quiet LAN read as 0ms in the header, the roster and under the far can, which looks like no reading at all. The longest tag, ╌<1ms, still fits in the roster's cells. Closes #158
It had slid above on_error, so on_error's docs opened by describing device matching.
…names Cargo.toml gains homepage = "https://tincan.rs", and npm/package.json and the Homebrew formula written by the release workflow point there instead of the repository. The README's website links move from tincan.bilalyazicioglu.com to tincan.rs, and Install opens with which name the program goes by where, and that it is not the Tin Can API.
fix(ui): write a round trip under a millisecond as <1ms (#158)
docs: make tincan.rs the homepage everywhere and explain the package names
The demo predated per-peer link quality, so it showed nothing of it. After the tour, deniz says he is on hotel wifi and drops to a relay: the header names him, his row reads ╌140ms and the far can becomes him. He is direct again before the camera pulls out, so the loop opens and ends on a healthy line. The mesh reading the showcase generator built inline is now mesh_reading(), shared by both generators.
chore(demo): show per-peer link quality in the README demo
chore: release 0.3.3
…ermux runs The crates.io paragraph said the npm package and the repository are both called tincan; both are tincan-cli, as the lines above it say. The platform table still put Android voice on the roadmap for v0.2.0.
docs: name the npm package and the repository rightly
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release v0.3.3
Features
The link used to be one reading for the whole mesh, so one bad connection coloured the screen and the round trip shown belonged to nobody. Now each connection keeps its own:
╌340msin brass and a slow direct one (two readings in a row at 150 ms or more, clearing below 120 ms) with its round trip. The selected row shows its own round trip when healthy.RELAY deniz 140ms. When the header is narrow the name goes first, then the number.Fixes
<1ms, not0ms(fixes [bug] A round trip under a millisecond is shown as 0ms #158) — fix(ui): write a round trip under a millisecond as <1ms (#158) #159.Other
Cargo.toml,npm/package.jsonand the Homebrew formula, and the README says once which package name is which — docs: make tincan.rs the homepage everywhere and explain the package names #161, docs: name the npm package and the repository rightly #164.cargo fmtformatted and CI fails when it is not — style: format the codebase with cargo fmt and check it in CI #157.Cargo.toml,Cargo.lockandnpm/package.json— chore: release 0.3.3 #163.Type of Change
Checklist
cargo testand all 93+ tests pass cleanly.cargo clippy --all-targetsand resolved all warnings.cargo fmt.