Execute the tier_trial → participant downgrade (operator-gated, 30-day notice first) #270

Öppen
öppnade 2026-07-30 22:34:16 +00:00 av supernaut · 1 kommentar
Ägare

The sign-up trial (ADR 0036) grants full paid capabilities to tier_trial members until an operator
runs the downgrade. Everything needed to run it shipped with #232; what remains is the
operational act of running it, which is deliberately manual and operator-gated.

This issue exists so that step is tracked rather than living only in the runbook.

No date, anywhere

The trial used to be described as ending on an announced date, later softened to a floor of
31 August 2026. Both are gone. No user-facing surface states a date, nothing in the system holds
one, and the trigger is paid subscriptions launching for everyone.

The gate

Do not run this until paid subscriptions are live, or until you have explicitly decided to end
the trial. Never revoke capabilities before users have a way to subscribe.

The public promise is at least 30 days' notice before the trial ends. Nothing enforces that for
you. Send the notice and let the 30 days elapse before the irreversible step, and close the trial
door first so a trial started during the notice window cannot be downgraded without ever having
been told.

What to do

Follow docs/runbook.md § Sign-up trial & the trial downgrade (ADR 0036). In outline:

  1. Close the trial door (web_trial_open: "false" + ansible-playbook site.yml --tags web) so the
    set of people owed notice stops growing.
  2. List the affected members (kanidm group list-members tier_trial), send them the 30-day
    trial-end notice, and wait out the 30 days.
  3. Move each member tier_trial to tier_participant (idempotent; re-running is safe).
  4. Confirm tier_trial is empty.
  5. Trigger a reconcile immediately instead of waiting for the timer.
  6. Verify a sampled ex-trial user now sits in the participant quota group with no org-create and
    no Actions.

Done when

  • The 30-day notice went out and elapsed before any member was moved.
  • tier_trial has no members (the group stays defined; the reconciler is inert over an empty group).
  • A sampled ex-trial account is confirmed downgraded in Forgejo.
  • The trial checkbox is no longer offered at sign-up.

Epic: gitborg/gitborg-docs#51. Also gates opening checkout to everyone: bitborg-docs#5.

The sign-up trial (ADR 0036) grants full paid capabilities to `tier_trial` members until an operator runs the downgrade. Everything needed to run it shipped with #232; what remains is the **operational act of running it**, which is deliberately manual and operator-gated. This issue exists so that step is tracked rather than living only in the runbook. ## No date, anywhere The trial used to be described as ending on an announced date, later softened to a floor of 31 August 2026. Both are gone. No user-facing surface states a date, nothing in the system holds one, and the trigger is paid subscriptions launching for everyone. ## The gate **Do not run this until paid subscriptions are live**, or until you have explicitly decided to end the trial. Never revoke capabilities before users have a way to subscribe. **The public promise is at least 30 days' notice before the trial ends.** Nothing enforces that for you. Send the notice and let the 30 days elapse before the irreversible step, and close the trial door first so a trial started during the notice window cannot be downgraded without ever having been told. ## What to do Follow `docs/runbook.md` § _Sign-up trial & the trial downgrade (ADR 0036)_. In outline: 1. Close the trial door (`web_trial_open: "false"` + `ansible-playbook site.yml --tags web`) so the set of people owed notice stops growing. 2. List the affected members (`kanidm group list-members tier_trial`), send them the 30-day trial-end notice, and wait out the 30 days. 3. Move each member `tier_trial` to `tier_participant` (idempotent; re-running is safe). 4. Confirm `tier_trial` is empty. 5. Trigger a reconcile immediately instead of waiting for the timer. 6. Verify a sampled ex-trial user now sits in the `participant` quota group with no org-create and no Actions. ## Done when - The 30-day notice went out and elapsed before any member was moved. - `tier_trial` has no members (the group stays defined; the reconciler is inert over an empty group). - A sampled ex-trial account is confirmed downgraded in Forgejo. - The trial checkbox is no longer offered at sign-up. Epic: gitborg/gitborg-docs#51. Also gates opening checkout to everyone: bitborg-docs#5.
Upphovsperson
Ägare

Decision: hold the downgrade. There is no deadline to hold against.

Reviewed ahead of 31 August. This issue's premise is wrong, and correcting it removes the time
pressure entirely.

The premise

The sign-up trial (ADR 0036) grants full paid capabilities to tier_trial members until a
single announced end date — end of August 2026 — as stated on /trial-terms.

/trial-terms does not state that. §2 says the trial "runs until sign ups for paid subscriptions
on Bitborg are launched for everyone, regardless of when you sign up. It runs at least until
31 August 2026, even if paid subscriptions are launched before then."

31 August is a floor, not an end date. Every other user-facing surface agrees: the sign-up
checkbox notice, the account panel, the accounts guide and the trial-end FAQ, in both languages.
src/i18n/ui.ts carries a comment confirming the floor framing is deliberate.

What follows

  1. Letting the trial run past 31 August is the announced behaviour, not an extension. It needs
    no announcement. The terms promise notice for shortening the trial or moving the floor, and
    neither is happening.
  2. Nothing fires automatically. ADR 0036 §5 makes the downgrade an operator-triggered batch,
    and the runbook confirms there is no timer. No date forces anyone's hand.
  3. The gate this issue already sets is the right one and it is not met: paid subscriptions are
    not live. The remaining path is #46 here, plus bitborg-payment and the portal's upgrade
    surface, several of which are still blocked or untriaged.

So: hold. No user communication, no page change, no operator action.

Done

  • The runbook and three Ansible comments repeated the same wrong claim, on the dangerous side —
    an operator reading them before an irreversible, capability-revoking batch would think a
    deadline had passed. Corrected in #422.

Follow-up

ADR 0036 §3 describes the sign-up checkbox as "in-form text stating the trial ends at the end of
August 2026". The shipped copy says "no earlier than 31 August 2026". The implementation refined
the decision and the ADR was never amended; filing that separately rather than editing a decision
record in passing.

Board

Moving back to Backlog. This is gated on paid subscriptions, so it is not actionable work.

## Decision: hold the downgrade. There is no deadline to hold against. Reviewed ahead of 31 August. This issue's premise is wrong, and correcting it removes the time pressure entirely. ### The premise > The sign-up trial (ADR 0036) grants full paid capabilities to `tier_trial` members until a > single announced end date — **end of August 2026** — as stated on `/trial-terms`. `/trial-terms` does not state that. §2 says the trial "runs until sign ups for paid subscriptions on Bitborg are launched for everyone, regardless of when you sign up. It runs **at least** until 31 August 2026, even if paid subscriptions are launched before then." 31 August is a **floor**, not an end date. Every other user-facing surface agrees: the sign-up checkbox notice, the account panel, the accounts guide and the trial-end FAQ, in both languages. `src/i18n/ui.ts` carries a comment confirming the floor framing is deliberate. ### What follows 1. **Letting the trial run past 31 August is the announced behaviour, not an extension.** It needs no announcement. The terms promise notice for *shortening* the trial or moving the floor, and neither is happening. 2. **Nothing fires automatically.** ADR 0036 §5 makes the downgrade an operator-triggered batch, and the runbook confirms there is no timer. No date forces anyone's hand. 3. **The gate this issue already sets is the right one** and it is not met: paid subscriptions are not live. The remaining path is #46 here, plus bitborg-payment and the portal's upgrade surface, several of which are still blocked or untriaged. So: **hold.** No user communication, no page change, no operator action. ### Done - The runbook and three Ansible comments repeated the same wrong claim, on the dangerous side — an operator reading them before an irreversible, capability-revoking batch would think a deadline had passed. Corrected in #422. ### Follow-up ADR 0036 §3 describes the sign-up checkbox as "in-form text stating the trial ends at the end of August 2026". The shipped copy says "no earlier than 31 August 2026". The implementation refined the decision and the ADR was never amended; filing that separately rather than editing a decision record in passing. ### Board Moving back to Backlog. This is gated on paid subscriptions, so it is not actionable work.
supernaut ändrade titeln från Execute the end-of-August tier_trial → participant downgrade (operator-gated) till Execute the tier_trial → participant downgrade (operator-gated, 30-day notice first) 2026-09-21 08:32:55 +00:00
Logga in för att delta i denna konversation.
Ingen milstolpe
Inga tilldelade
1 deltagare
Notiser
Förfallodatum
Förfallodatumet är ogiltigt eller utanför gränserna. Använd formatet "åååå-mm-dd".

Inget förfallodatum satt.

Beroenden

Inga beroenden satta

Referens
bitborg/bitborg-infra#270
Ingen beskrivning angiven.