Skip to content

Release v1.6.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 13:05
fa4ea66

Marquee now runs end to end in the consumer's Arc and Chronicle process, the way Usher does: write announcements, receive them once per product, show each tenant what its audience matches, and record who has dismissed a dialog.

Added

  • Cratis.Showrunner.Marquee.Authoring: commands to author, amend, retarget and withdraw an announcement, an observable per-product query for the authoring screen, and one MarqueeOutbox reactor that publishes all four contract events. Authorization is the host's: register a policy named MarqueeAuthoring.Policy. A withdrawal that is processed together with, or ahead of, its publication never leaves the announcement standing. (#36)
  • Cratis.Showrunner.Marquee: AddMarquee subscribes the product to its authoring store's outbox, records announcements once in the product's own namespace, drops what arrives after a retraction, and answers the observable query AnnouncementsForMe per tenant. Module and plan audiences are answered by the host's IAudienceEntitlements, and never match without one. A tenant created after publication still sees an active announcement. (#37)
  • AcknowledgeAnnouncement: records that a person saw a dialog shown once, in the tenant's namespace with the person as compliance subject, so it is shown once per person on every device. Acknowledging twice, a dialog shown every session and a banner record nothing. (#38)
  • @cratis/showrunner.marquee and @cratis/showrunner.marquee.authoring: the generated TypeScript proxies for the receiving and the authoring slices.
  • Documentation for authoring, receiving, acknowledging and the proxy packages: https://github.com/Cratis/Showrunner/blob/main/Documentation/Marquee/index.md

Changed

  • AnnouncementId is now an EventSourceId<Guid>, so an announcement has its own stream where it is authored, received and acknowledged. Contract events still carry it as a payload field.
  • The CI check that the committed proxies are current now covers every backend project that generates them.