diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index fb9d1a1..9264cbc 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -38,7 +38,15 @@ Sentinel is a **read-only audit and logging bot**. To keep it safe and trustwort - **Moderation actions** (ban, kick, timeout, deleting messages, changing roles or channels): the bot's capability policy blocks them on purpose. - **Tracking people**: online status, activities, games, music or anything Discord's privileged Presence intent would provide. - Collecting data that is not needed to review moderation and server activity, or keeping it longer than the configured retention. -- Anything that breaks Discord's Terms of Service or Developer Policy. +- Anything that breaks Discord's Terms of Service, Developer Policy or Monetization Terms. + +### Paid plans + +Paid plans are sold as Discord subscriptions, and Discord's [Monetization Terms](https://support.discord.com/hc/articles/5330075836311-Monetization-Terms) require that buyers get exactly what was described. So: + +- A change that **reduces** a paid plan (lower limit, logger moved to a higher plan or removed, feature taken away) must say so in the pull request. It is released only after subscribers have been told in advance and given time to cancel; the maintainer handles the notice. +- Plan names, prices and benefits must stay consistent across `packages/shared/src/plans.ts`, the pricing page and the Discord SKUs. +- Never add a way to pay outside Discord, discounts or price differences. ## Pull requests diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 7e0a52a..ae695a1 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -14,4 +14,5 @@ - [ ] Database changes are backward-compatible with the previous release (expand/contract) - [ ] No moderation capability or new data collection beyond the feature's needs ([scope](https://github.com/haxurus/Sentinel/blob/main/.github/CONTRIBUTING.md#project-scope)) - [ ] New dependencies are necessary and pinned +- [ ] Paid plans are not reduced (limits, loggers, features), or the reduction is described above and subscribers will be notified first - [ ] Documentation updated where needed diff --git a/apps/web/app/_components/LegalPage.tsx b/apps/web/app/_components/LegalPage.tsx index 1cbc334..c1a22db 100644 --- a/apps/web/app/_components/LegalPage.tsx +++ b/apps/web/app/_components/LegalPage.tsx @@ -5,7 +5,7 @@ type Section = { title: string; body: Array }; type Doc = { id: string; kicker: string; title: string; intro: string; sections: Section[] }; const CONTACT = 'haxurus@icloud.com'; -const UPDATED = { it: '13 ottobre 2026', en: '13 October 2026' }; +const UPDATED = { it: '16 ottobre 2026', en: '16 October 2026' }; const copy: Record = { en: { @@ -95,7 +95,9 @@ const copy: Record +

{c.priceNote} {c.scopeNote}

{c.compare}

diff --git a/apps/web/app/globals.css b/apps/web/app/globals.css index 0b028fd..195ed63 100644 --- a/apps/web/app/globals.css +++ b/apps/web/app/globals.css @@ -618,6 +618,7 @@ textarea { min-height: 84px; resize: vertical; line-height: 1.5; } .billing-toggle button { min-height: 34px; padding: 0 18px; border: 0; border-radius: 999px; background: transparent; color: var(--muted); font-size: .86rem; font-weight: 600; } .billing-toggle button.active { background: var(--accent); color: var(--accent-ink); } .plan-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; } +.plan-footnote { max-width: 860px; margin: 14px 0 0; color: var(--muted); font-size: .82rem; line-height: 1.55; } .plan-card { position: relative; display: flex; flex-direction: column; padding: 24px 22px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); } .plan-featured { border-color: var(--accent-line); background: radial-gradient(ellipse 80% 60% at 100% 0%, rgba(167,139,250,.10), transparent 70%), var(--surface); } .plan-level { color: var(--faint); font-size: .7rem; letter-spacing: .12em; }