Skip to content

Signal.NET 0.3.0-preview.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Sep 21:16
· 45 commits to main since this release
cbf90a0

Milestone 0.3 (complete API coverage). Every change is additive: members added to existing interfaces have default
implementations, so code written against 0.2.0-preview.2 keeps compiling.

Added

  • Typed capabilities (roadmap 0.3.13): SignalCapability (with SendQuotes and SendMentions), SignalApiInfo.Supports and SignalApiInfo.EnsureSupported. The latter throws a NotSupportedException naming the missing feature and the API version.

  • Group extras, contact sync and number search (roadmap 0.3.8, 0.3.9, 0.3.10):

    • New IGroupService members: JoinAsync (accept an invitation), BlockAsync, UpdateSettingsAsync (GroupPermissions, GroupLinkMode, disappearing-messages timer), PinMessageAsync and UnpinMessageAsync.
    • New IContactService members: SyncAsync sends contacts to linked devices; CheckRegisteredAsync reports which numbers are registered with Signal.
    • All are default interface members, so existing implementations keep compiling.
  • Stickers and link previews (roadmap 0.3.6, 0.3.7):

    • OutgoingMessageBuilder.WithSticker sends a sticker. The new Sticker value object parses packId:stickerId and binds as a command argument.
    • The new IStickerService lists and installs sticker packs, by id and key or from a signal.art share link.
    • OutgoingMessageBuilder.WithLinkPreview attaches a preview card. Build() rejects previews whose URL isn't in the text, and stickers combined with attachments.
  • Device management (roadmap 0.3.2):

    • The new IDeviceService lists (LinkedDevice), links and removes the devices of an account registered in the container.
    • IAccountService.GetLinkUriAsync returns the raw sgnl://linkdevice URI, so you can render your own QR code. It's a default interface member.
  • Account management (roadmap 0.3.3, 0.3.4, 0.3.11): new IAccountService members:

    • SetUsernameAsync and DeleteUsernameAsync;
    • UpdateSettingsAsync (discoverability, number sharing);
    • SetPinAsync and RemovePinAsync for the registration lock;
    • SubmitRateLimitChallengeAsync to lift a rate limit with a captcha.

    They are default interface members, so existing implementations keep compiling.

  • Registration and verification (roadmap 0.3.1):

    • The new IRegistrationService registers a number as the container's primary device (RegisterAsync by SMS or voice, with an optional captcha).
    • VerifyAsync completes the registration with the received code and an optional registration-lock PIN.
    • UnregisterAsync removes the number again.
    • Calls are never retried, so no duplicate verification codes are sent.
  • Remote delete (roadmap 0.3.5): IMessageSender.RemoteDeleteAsync deletes a sent message for everyone, identified by its SendResult.Timestamp. It's a default interface member, so existing IMessageSender implementations keep compiling.

  • Streaming attachment downloads (roadmap 0.3.12): IAttachmentService.OpenReadAsync returns an AttachmentDownload whose stream reads directly from the HTTP response, with content type and length. It's a default interface member, so existing IAttachmentService implementations keep compiling.

  • Release workflow: waits until every package is listed on nuget.org before creating the GitHub Release (roadmap 0.2.8).

  • Package validation: compares against the published 0.2.0-preview.2 baseline, so breaking API changes fail dotnet pack.

What's Changed

  • Verify packages are listed on nuget.org before announcing a release by @Nacorpio in #13
  • Stream attachment downloads (roadmap 0.3.12) by @Nacorpio in #14
  • Add remote delete of sent messages (roadmap 0.3.5) by @Nacorpio in #15
  • Add number registration and verification (roadmap 0.3.1) by @Nacorpio in #16
  • Fix remaining race in WebSocket reconnect test by @Nacorpio in #17
  • Add account management: username, settings, PIN, rate-limit challenge by @Nacorpio in #18
  • Add device management (0.3.2) by @Nacorpio in #19
  • Add stickers and link previews (0.3.6, 0.3.7) by @Nacorpio in #20
  • Add group extras, contact sync and number search (0.3.8-0.3.10) by @Nacorpio in #21
  • Add typed capability checks (0.3.13) by @Nacorpio in #22
  • Release v0.3.0-preview.1 by @Nacorpio in #23

Full Changelog: v0.2.0-preview.2...v0.3.0-preview.1