Skip to content

Public text brought up to date after the launch review - #56

Merged
Saffsanity merged 5 commits into
mainfrom
review-fixes
Oct 11, 2026
Merged

Saffsanity merged 5 commits into
mainfrom
review-fixes

Conversation

@Saffsanity

Copy link
Copy Markdown
Owner

Applies the confirmed findings of the 2026-10-11 public-surface review that live in this repository: the website, the README, SECURITY.md, the bug form, docs/DEVELOPMENT.md, docs/app-store-metadata.md, docs/BRIEF.md and one string in Sill.app's Settings. Findings about the launch posts, the GitHub release notes, the live App Store listing and the sill-site repository are handled elsewhere. Nothing here changes how either app behaves.

The website (site/)

  • support.html, Direct Wireless Connection (must-fix): said to tap Search Nearby when the Mac isn't listed. A paired iPhone or iPad lists its Mac as a Remote row, so Search Nearby never shows. It now says that, when the device looks nearby by itself, and to connect once over a USB cable with the setting on (inside Remote Access markers, since Remote rows and the VPN are Remote Access's). "Your Mac isn't listed" and the landing page's "No shared network?" now link to that section.
  • support.html, the picture stutters: lowering Quality in the Sill menu does nothing away from home, which runs its own quality. It now says where to lower that one (inside Remote Access markers).
  • support.html, Remote Access: a port forward also needs Allow connections from the internet; macOS 14 calls Energy "Energy Saver"; 0.3.1 predates pairing at home, not pairing.
  • privacy.html: "nothing about you ever reaches the developer" is no longer absolute now that TestFlight and App Store crash reports exist, so it says Sill never sends anything, and the short version names Apple's channel. The device's pairing key can be in that device's own backup, usable only on it. "None of it is sent anywhere" now allows for what travels between your devices and the Bonjour name and p. The Mac's version joins what the Mac sends. Dated October 11, 2026.
  • download.html: Accessibility is also for the Mac's menus. Uninstall says to remove devices before quitting Sill for the last time, because the keys stay in the keychain.
  • index.html: the iPhone Duo sentence follows how it is held (open flat on its side, half open like a laptop).
  • terms.html: the one Remote Access mention outside the markers is now inside them. The App Store badge is credited as Apple's, and App Store is named as a service mark.

README.md

  • Building from source over a downloaded Sill.app: grant permissions and pair every device again, because the download keeps its keys in the data-protection keychain and your own build uses the login keychain.
  • SillHost without --pairing has a plain, open home door, which the App Store app never dials.
  • A Mac on 0.3.1 or earlier admits anything that reaches it, not only "any iPhone or iPad with Sill".
  • The camera prompt is listed, and a Terms link is added.

SECURITY.md and the bug form

  • The "Known" paragraph said that until pairing at home ships, nearby devices connect unencrypted. It now covers what is true since 0.4.0: Require pairing turned off (still encrypted, and any app on the Mac also gets in), the CLI's plain door without --pairing, and Macs on 0.3.1 or earlier.
  • The scope covers pairing at home and away, not only Remote Access's pairing.
  • "Report a vulnerability" is on, so it is offered without a condition.
  • The bug form's version example is 0.5.1 (563), and its route dropdown adds "Not paired" and "Update Sill".

docs/DEVELOPMENT.md

  • "To start over" (twice) and Require pairing's storage sent download users to Keychain Access › login, which their Sill never reads. Each now names both keychains: data-protection for the download, login for a build without the profile.
  • Direct Wireless no longer says anyone nearby can connect.
  • Releasing:
    • Release builds need the provisioning profile. CI has none and would give every Mac a new key, so releases are published from a Mac with SILL_SIGN_IN_CI left off.
    • Both apps share one version number since 0.5.1, and the example is v0.5.1.
  • The update check's 404 is no longer the normal state.
  • The CLI's argument streams a match, and it lists nothing.
  • The Duo hides the status bar sideways too.
  • The iOS project's plists, the checks list, Packaging/, site/ and design/ are described as they are now, and the example versions are current.

docs/app-store-metadata.md

  • Remote Access shipped (it was "1.0, undecided"), and 0.5.1 (4) is live, not next.
  • The live description and subtitle differ from this file's blocks. They are noted, and the blocks are kept as the next version's text. The description gains the open-source bullet the public LICENSE allows.
  • The review notes are App Store Connect's as sent, with 0.5.1's sentence and Sill for Mac 0.5.1. The attachment is a screen recording.
  • The live six screenshots per set are listed.
  • Section 10's counts were measured again (the 0.5.1 line predated the Duo text).

docs/BRIEF.md

The license question is settled (Apache-2.0, final since the repository went public), and a line says the brief is as of 2026-09-22.

Sill.app (one string)

Settings › General's Direct Wireless footnote said "Anyone nearby with Sill can find and connect to this Mac." It now says "Anyone nearby with Sill can find this Mac; only devices you paired can connect, unless Require pairing is off."

Also

  • CLAUDE.md's Layout no longer calls the README's App Store badge a commented slot (it has been live since 2026-10-10).
  • design/README.md describes design/screenshots/.
  • CI's paths-ignore leaves out design/screenshots/**, so a screenshot-only change starts no run. The rest of design/ and all code still run CI.

Checks run

  • swift build -c release: built, with only the known CaptureProbe warning. No check compiles SettingsPanes.swift, and no check or preview sample holds the old footnote, so Tests/checks/run-all.sh was not needed.
  • Every page in site/ parses with balanced tags under Python's html.parser, and all 94 relative links, images and anchors resolve.
  • The release checklist's Remote Access cut: with every marked block removed from copies of the pages, its grep prints nothing.
  • The issue form and ci.yml parse as YAML.
  • In docs/app-store-metadata.md, the description is 2,872 characters (2,651 local-only) and the review notes are 3,952 bytes (3,709), all ASCII.
  • No added line contains an em-dash.

After this merges, republish the site (sill-site) so getsill.app shows the new pages.

🤖 Generated with Claude Code

Saffsanity and others added 5 commits October 11, 2026 02:47
Lines written before pairing at home, the away quality, the App Store and
the Mac's menus, which no longer said what Sill does:

- support: Search Nearby shows only when nothing is listed, and a paired
  device lists its Mac as Remote, so the Direct Wireless steps now say how a
  paired device finds its Mac nearby (inside Remote Access markers, since
  Remote rows and the VPN are Remote Access's); "Your Mac isn't listed" and
  the landing page link to that section. Lowering Quality in the Sill menu
  does nothing away from home, which streams at its own quality: the stutter
  item says where to change it. A port forward needs Allow connections from
  the internet. macOS 14 calls Energy "Energy Saver". 0.3.1 predates pairing
  at home, not pairing.
- privacy: since TestFlight and the App Store, Apple can pass Sill's crash
  reports to the developer, so "nothing about you ever reaches the
  developer" became "Sill never sends anything", with the short version
  naming Apple's channel; the device's pairing key is in that device's own
  backups (ThisDeviceOnly), usable only on it; "None of it is sent anywhere"
  ignored what travels between devices and the Bonjour name and `p`; the
  Mac's version, sent in every window list, joins the list. Dated October 11.
- download: Accessibility is also for the Mac's menus; Uninstall says to
  remove devices before quitting for the last time, since the keys stay in
  the keychain.
- index: the Duo sentence follows how it is held (flat on its side, half
  open like a laptop).
- terms: the only Remote Access mention outside the markers is now inside
  them, so the checklist's cut gate stays clean; the App Store badge is
  Apple's artwork, credited as Apple's guidelines ask, App Store as a
  service mark.

Checked: every page parses with balanced tags, every relative link and
anchor resolves, and with each Remote Access block cut the checklist's grep
prints nothing. No CSS change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…p Store

Text written before the downloads moved the Mac's keys to the
data-protection keychain, before 0.5.1, and before the App Store listing:

- README: building from source over a downloaded Sill.app means granting
  permissions and pairing every device again (the download's keys are in
  the data-protection keychain, a build of your own uses the login one);
  SillHost without --pairing has a plain, open home door, which the App
  Store app never dials; a 0.3.1 Mac admits anything that reaches it, not
  "any iPhone or iPad with Sill"; the camera prompt; a Terms link.
- DEVELOPMENT.md: "To start over" (twice) and Require pairing's storage
  sent download users to Keychain Access › login, which their Sill never
  reads; Direct Wireless's "anyone nearby can connect" contradicted Require
  pairing; release builds need the provisioning profile, so CI publishing
  (no profile) would give every Mac a new key; one version number for both
  apps since 0.5.1; the update check's 404 is no longer the normal state;
  the CLI's argument streams a match, it lists nothing; the Duo hides the
  status bar sideways too; the project's plists, the checks, Packaging/,
  site/ and design/ as they are now; example versions.
- app-store-metadata.md: Remote Access shipped (no longer "1.0, undecided");
  0.5.1 (4) is live, not next; the live description and subtitle differ
  from the blocks here, which are noted as the next version's text, and the
  description gains the open-source bullet the public LICENSE allows; the
  review notes are App Store Connect's as sent (with 0.5.1's sentence and
  Sill for Mac 0.5.1), the attachment a screen recording; the live six
  screenshots per set; section 10's counts measured again (the 0.5.1 line
  predated the Duo text).
- BRIEF.md: the license question is settled (Apache-2.0, final since the
  repository went public), and a line says the brief is as of 2026-09-22.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SECURITY.md still said that until pairing at home ships, any iPhone or iPad
on the Mac's networks connects unencrypted. Since Sill for Mac 0.4.0 every
connection at home is TLS 1.3 and only paired devices connect by default;
the known case is now Require pairing turned off (still encrypted, and any
app on the Mac gets in too), the command-line host's plain door without
--pairing, and Macs on 0.3.1 or earlier. The scope names pairing at home
and away, the cable's automatic pairing, Require pairing and the keys in
the keychain, not only Remote Access's. Private vulnerability reporting is
on, so the Security tab's "Report a vulnerability" is offered plainly.

The bug form's version example is 0.5.1 (563), and the route dropdown
offers the two row words pairing at home added: Not paired and Update Sill.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The footnote under "Direct wireless connection" (2026-09-24, before pairing
at home) said "Anyone nearby with Sill can find and connect to this Mac."
Since Sill for Mac 0.4.0 a device nearby can find the Mac, but with Require
pairing on, the default, only paired devices connect: the support page and
the Devices pane say so. Only the string changes.

Checked: swift build -c release (only the known CaptureProbe warning). No
check or preview sample holds the old text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- CLAUDE.md's Layout still called the README's App Store badge a commented
  slot; it has been live since 2026-10-10. The README's links now include
  Terms (this pull request).
- design/README.md had no line for design/screenshots/, which PR #55 added:
  the App Store's iPad screenshots at half size (1032 x 1376 JPEG) that the
  README shows, and whose file names open-source app lists link.
- CI's paths-ignore leaves out design/screenshots/**, so a change to the
  screenshots alone starts no run; the rest of design/ still runs CI
  (dmg-layout reads DMGBackground.svg), and code changes run it as before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Saffsanity
Saffsanity merged commit 985a733 into main Oct 11, 2026
2 checks passed
Code-Tomato added a commit to Code-Tomato/sill that referenced this pull request Oct 14, 2026
… release) into audio

Both sides kept whole, not rebased. Where they meet:
- Kind 16 is per connection on main (Saffsanity#39): every connection's state carries
  sendAudio (streamSettings(away:)) and the Mac's audioNote beside its own
  away and link. A device away sets Send Audio through applyingAway.
- HostConfig's away pair and requirePairing beside sendAudio, which stays out
  of restartNeeded.
- StreamServer: the sound's codecs are taken from the hello on every door,
  the TLS ones (Saffsanity#37's Door) included. The sound's bytes now count in every
  client's pendingBytes and takenThisSecond, as main counts every message
  for the link judge (Saffsanity#39); it still never counts in inflight, is never
  paced and never touches the keyframes' bookkeeping.
- The sound harness (Scripts/audio) builds against main's StreamServer: the
  Door's files and LinkJudge in its host set, serve(_:route:hello:).
- Tests: away-wire's StreamSettings gains sendAudio; the kinds read 28
  gesture, 29 audio, 30 unknown; the mutants matrix is both sides' lists.
- The Duo's book pose (Saffsanity#47): at 951 pt the bar has no room for Sound beside
  the fold, so Sound shows there only in the panel's switch.
- CLAUDE.md: the sound's entry first in Current step, both sides' Layout and
  Build and run; docs/audio-plan.md gains "Merged with main at 985a733".

Verified: swift build -c release (only the CaptureProbe warning);
Tests/checks/run-all.sh, all 43; the iOS app with Xcode 27.0 compiles
everything but main's iOS 27.1 calls in DuoPostureReader.swift (a scratch
copy with those stubbed builds Debug and Release for the simulator); this
Mac has no Xcode 27.1, so CI builds the real one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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