Skip to content

Settings panel: Connection Information, with Copy - #95

Open
addhumal wants to merge 6 commits into
Saffsanity:mainfrom
addhumal:connection-info
Open

addhumal wants to merge 6 commits into
Saffsanity:mainfrom
addhumal:connection-info

Conversation

@addhumal

@addhumal addhumal commented Oct 14, 2026 •

Copy link
Copy Markdown

Closes #102.

What it does

Adds a Connection Information group in the device's Settings panel, above Take the Tour, showing what the session runs on (refreshed with each second's link stats) and a Copy Connection Information button. Device only: no wire change, nothing sent to the Mac.

ConnectionInfo (pbxproj AD01/FD01) formats the rows and the copied text from what StreamClient already keeps (linkStats, route/remoteRoute, hostVersion/hostProtocol, and the running stream). A second without samples reads "–", never zero. Copy Connection Information writes to UIPasteboard.general with .localOnly and updates client.clipboardHandled so Universal Clipboard does not carry it to the Mac and the Paste on ‹Mac› chip never offers Sill's own diagnostic text back; the row reads Copied for 2 s.

Why

When troubleshooting a slow link or filing a bug report, the session's numbers are spread across the panel header, the route line, the Mac's log and the DEBUG-only HUD. Putting them in one read-only group with a one-tap copy makes every number available from a Release build without presenting a sheet over the stream:

Row Example
Mac Mac mini
Connection Wi-Fi / Wired / Direct / through Tailscale
Picture 2880×1800 · 60 fps · 15 Mbps (or Not streaming)
Received 60 fps (or –)
Round trip 7 ms (worst 14 ms)
Frame age 9 ms (worst 22 ms)
Mac's Sill 0.5.1 (protocol 1) (or an older Sill or the command-line host)
This iPad / iPhone Sill 0.5.1 (4) · iPadOS 27.0 · iPad16,9

Checks

  • Tests/checks/connection-info: 22 checks covering every row, missing samples ("–"), older hosts without a version, and the copied text with its UTC timestamp. 12 of 12 mutants caught. Added to CI's mutants list and the checks README.
  • Tests/checks/run-all.sh and swift build -c release pass with only the known warnings.
  • Verified live on an iPad Air simulator (iOS 27.0) against SillHost --synthetic on loopback.

Windows App's Connection Information, from the roadmap (docs/roadmap-2026-10.md on its branch): a
group above Take the Tour with what this session runs on, refreshed with each second's link stats:
the Mac, the connection (Wi-Fi, Wired, Direct, or a remote session's "through Tailscale"), the
running picture, the frames received, the round trip and frame age (median and worst), the Mac's
Sill and protocol, and this device. Copy Connection Information puts the same as text on the
clipboard, with the UTC time, for a bug report. Device only: no wire change, nothing sent. A
group in the panel rather than a sheet, so nothing is presented over the stream.

ConnectionInfo (pure, pbxproj AD01/FD01) builds the rows and the text: a second without samples
reads "–", never as zero; the screen's non-breaking hyphens paste as plain ones.

Checks: Tests/checks/connection-info, 22 checks and 12 of 12 mutants (red before the file
existed), in CI's mutants matrix. Seen live on an iPad Air simulator (iOS 27.0) against
SillHost --synthetic on loopback with the software encoder: the rows filled and refreshing, the
command-line host's missing version named.
@Saffsanity

Copy link
Copy Markdown
Owner

From a pass over all the open pull requests (nothing is decided yet): this adds its group at the same spot in HostSettingsPanel.swift as #96 (between This iPad and Take the Tour), so the two need one agreed order, with the gap before Take the Tour settled at the same time. Since the clipboard sharing from #78 is on main now, Copy Connection Information should write with .localOnly, so the Paste on Mac chip does not offer Sill's own text back; the other overlaps (#66, #72, #73, #93, #94, #99, #107, #117) are the ci.yml mutants line, the checks README and adjacent project-file entries.

# Conflicts:
#	.github/workflows/ci.yml
#	Tests/checks/README.md
@addhumal

addhumal commented Oct 15, 2026 •

Copy link
Copy Markdown
Author

Thanks. Pushed c75c45b (and merged main in b6c4e10): Copy Connection Information now writes to UIPasteboard.general with .localOnly and sets client.clipboardHandled = board.changeCount, so the Paste on ‹Mac› chip never offers Sill's own diagnostic text back, and the group has the same 8 pt gap before Take the Tour as #96.

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.

Feature Request: Connection Information in the Settings panel, with Copy

2 participants