<observations>
Date: April 29, 2026
* 🟡 (03:33) User asked to: 1) check for newer version of `stripe projects` CLI module, 2) re-read the APP spec thoroughly for catalog/allowed_updates implications on upgrade flow
* 🟡 (03:33) Agent confirmed `stripe projects` already on latest v0.10.0 — no newer version available
* 🟡 (03:35) Agent found key spec example: `subscriptions:free` (plan) has `allowed_updates: ["subscriptions:pro"]`, but `db:fra1-512mb` (deployable) has NO `allowed_updates` — spec pattern is plan-to-plan transitions via `allowed_updates` on plan services, NOT on deployable services
* 🟡 (03:36) Agent concluded PR #20143's `allowed_updates` on `project` (deployable) goes against spec's intended pattern — CLI rejects cross-kind upgrades (deployable→plan) via `allowed_updates` because spec only supports same-kind transitions
* 🟡 (03:36) `stripe projects add sentry/team` succeeded on v0.10.0 — directly provisioned plan resource (`sentry-plan: team, $29/month`). This was blocked in v0.7.0 with "is a plan and can't be added directly"
* 🟡 (03:37) `stripe projects upgrade sentry-plan sentry/business` attempted — reached Sentry endpoint but failed with SPT billing limit error: "The plan amount exceeds your Stripe Projects payment limit. Run `stripe projects billing update` to raise the monthly limit"
* 🟡 (03:37) Agent confirmed non-interactive plan-to-plan upgrade WORKS when targeting plan resource directly (sentry-plan), not the project resource. Error was billing limit, not CLI rejection.
* 🟡 (03:37) Correct non-interactive flow on v0.10.0: (1) `stripe projects add sentry/project` (free deployable), (2) `stripe projects add sentry/team` (plan as separate resource), (3) `stripe projects upgrade sentry-plan sentry/business` (plan-to-plan)
* 🟡 (03:37) Agent noted `project.allowed_updates` from #20143 is harmless — CLI ignores it for cross-kind, no need to revert. Removal would be PR churn.
* 🔴 (03:38) User decided to proceed with reverting ...