You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
trial: drop trial_ends_at + 'trial' subscription_status from API types and UI copy (W10) (#56)
Mirrors the api W10 trial removal. Drops trial_ends_at from /auth/me response type and 5 mock fixtures; removes 'trial' from the subscription_status union; deletes the 'Trial vs. immediate Hobby' lock banner from ContractsPage; rewrites the 'anonymous tier is the trial' copy on UseCaseDetailPage; trims the trailing + trial_ends_at from ClaimPage. Per policy memory project_no_trial_pay_day_one.md.
417 vitest passes, tsc clean.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
{/* The "Trial vs. immediate Hobby" banner was removed on 2026-05-14
161
+
per policy memory project_no_trial_pay_day_one.md — the platform
162
+
has no trial period; hobby/pro/team are paid from day one. */}
160
163
<ContractBannerkind="warning"badge="#1">
161
-
<strong>Trial vs. immediate Hobby.</strong><code>plans.yaml</code> declares <code>trial_days: 14</code>; <code>auth.go:151</code> assigns <code>hobby</code> with no trial fields. Brief journey 1 assumes a trial. <strong>Lock:</strong> add <code>teams.trial_ends_at</code> + worker, OR drop trial language from copy.
162
-
</ContractBanner>
163
-
<ContractBannerkind="warning"badge="#2">
164
164
<strong>"Deployments" vs "Stacks".</strong> Brief uses "Deployments"; the API uses "Stacks". <strong>Lock:</strong> dashboard URL is <code>/deployments</code> (user language), API stays <code>/stacks</code> (existing).
165
165
</ContractBanner>
166
-
<ContractBannerkind="warning"badge="#3">
166
+
<ContractBannerkind="warning"badge="#2">
167
167
<strong>Multi-env scoping.</strong> Resource shape includes <code>env</code> but list endpoint has no <code>?env=</code> filter. <strong>Lock:</strong> add server-side filter param + <code>teams.default_env</code> in PATCH body.
168
168
</ContractBanner>
169
-
<ContractBannerkind="warning"badge="#4">
169
+
<ContractBannerkind="warning"badge="#3">
170
170
<strong>Role changes.</strong> Members are invited with a role; there's no <code>PATCH /members/:id</code> for promotion/demotion. <strong>Lock:</strong> add <code>PATCH /api/v1/team/members/:user_id</code> with body <code>{`{role}`}</code> + audit row.
171
171
</ContractBanner>
172
-
<ContractBannerkind="warning"badge="#5">
172
+
<ContractBannerkind="warning"badge="#4">
173
173
<strong>Multi-service stacks.</strong> Brief separates <em>Deployments</em> (single service) from <em>Stacks</em> (multi-service compose). <code>DashboardStack</code> has no <code>services[]</code> field.
174
174
</ContractBanner>
175
175
</div>
@@ -200,7 +200,7 @@ data: {}`}</>}
200
200
If we lock these in sequence, FE and BE can ship without merge-day surprises.
0 commit comments