feat(app): Help > Share gclo by email, a ready-to-send invitation with download links #164

Merged
james.maes merged 4 commits from feat/share-invitation into main 2026-11-11 01:32:28 +00:00
4 Commits
Author SHA1 Message Date
james.maesandClaude Fable 5.2 6f30a3369c fix(app): the share invitation holds only what it should, and its fallback is reached when it is needed
From the independent review of this pull request:
- The links are built from the parsed address (scheme, host, path); an address
  with a user name, a query or a fragment, and a version with a control
  character, are refused.
- An invitation too long for a link (FitsInALink) is shown for copying instead
  of being handed to a mail program that might cut it short.
- A launch that throws is treated like one that found no mail program.
- The log says what happened after it happened, including a dialog that could
  not be shown because another one is open.
- The clipboard copy is flushed, so the text survives gclo closing.
- The box that holds the text tells a screen reader why the dialog is there.
- The message no longer sends its reader to the issue tracker: filing an issue
  there needs an account, and registration is closed. The reader is asked to
  tell the sender.

Refs #163

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
2026-11-10 19:32:01 -06:00
james.maesandClaude Fable 5.2 124d081964 fix(app): the share dialog does not depend on the clipboard, and the UI suite leaves the clipboard alone
The fallback dialog copied the invitation to the clipboard before it showed
itself. The clipboard belongs to the whole desktop: when another program
held it the dialog never appeared, and under the UI suite the copy overwrote
whatever the person at the machine had copied. The copy is now best effort,
the dialog says whether it happened, and the UI fixture skips it.

Refs #163

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
2026-11-10 19:16:15 -06:00
james.maesandClaude Fable 5.2 7ca752eab5 fix(app): the share dialog shows the whole invitation, not only its subject
The text box was given its text before it was told to take several lines,
and a one-line box keeps only the first line of what it is given. Found by
the UI test for this dialog on its first run.

Refs #163

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
2026-11-10 19:08:32 -06:00
james.maesandClaude Fable 5.2 1265d77923 feat(app): Help > Share gclo by email, a ready-to-send invitation with download links
Help > Share gclo by email opens a new message in the user's email program
with an invitation already written: what gclo is, where to download the
latest release, how to install it (the installer, and Scoop for the command
line), where the documentation is, and where to send feedback. No
recipient is filled in, so the user types an address and sends. gclo
itself sends nothing, and nothing about the user, their accounts, or their
repositories is in the text.

- ShareInvitation (gclo.ViewModels) writes the subject, the body, and the
  mailto link, and keeps the link short enough for mail programs that cut
  long ones.
- The shell hands the link to the system. When no email program takes it,
  the invitation is copied to the clipboard and shown, to be pasted into a
  message by hand. Under the UI test fixture it is only shown, so the
  suite opens nothing on the machine it runs on.

Closes #163

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
2026-11-10 17:14:23 -06:00