Skip to content

feat(stripe-projects): integrate plugin 0.39.1 → 0.40.0 - #112

Open
cursor[bot] wants to merge 19 commits into
mainfrom
bot/stripe-projects-0.40.0
Open

cursor[bot] wants to merge 19 commits into
mainfrom
bot/stripe-projects-0.40.0

Conversation

@cursor

@cursor cursor Bot commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Why

Stripe Projects plugin 0.40.0 is live. Main still pins 0.39.1. The catalog wire renamed every service field provider_id to provider with the same prvdr_… values. Stackless must model that key and bless fixtures before doctor and hermetic drift gates stay green.

Scope

  • ServiceDetail.provider in catalog.rs (no serde alias for the old key)
  • Hermetic CATALOG_ENVELOPE strings under stackless-integrations
  • Journal catalog identity compare uses service.provider
  • STRIPE_PROJECTS_PINNED → 0.40.0
  • Blessed plugin-version.txt, catalog.json, command-surface.txt via mise run stripe-refresh

Out of scope: new integrations (zero catalog ref adds/removes), TRAVERSAL changes (no new top-level commands), creation-response data.service.provider_id, EXCL domains/containers/plan tiers, new --on substrates.

Tradeoffs

Renamed the Rust field to match the wire instead of keeping provider_id with a serde rename. Creation-response JSON still uses provider_id and stays on that path.

Blast Radius

Anyone parsing catalog fixtures or ServiceDetail must use provider. Doctor warns until the plugin is at 0.40.0. Runtime add/list recovery is unchanged.

Verification

  • mise run stripe-refresh blessed v0.40.0 with empty drift_report
  • Semantic catalog compare vs live capture equal after normalizing last_updated/source
  • mise run check green
  • cargo nextest run -p stackless-stripe-projects -p stackless-integrations -p stackless --all-features → 338 passed, 2 skipped
  • mise run catalog-orphans → 90 deployables owned (72 registered, 5 substrate-only, 13 excl)

Fixture changelog

  • Version pin 0.39.1 → 0.40.0
  • Catalog 199 services unchanged by reference; every service key provider_id → provider
  • allowed_updates / updateable_to order-only noise
  • Command surface: version header/banner only; TRAVERSAL blocks unchanged

Skips

  • New integrations: no actionable catalog deltas
  • billing update already in TRAVERSAL
  • Live discover / provisional OUTPUT_FIELDS: not needed this bump
  • Babysit: deferred to morning review
Open in Web View Automation 

…wire

Catalog services now expose `provider` instead of `provider_id`. Update the
typed model, journal compare, hermetic catalog envelopes, and doctor pin.
Regenerate catalog.json, command-surface.txt, and plugin-version.txt via
mise run stripe-refresh against the locally installed projects plugin.
@vercel

vercel Bot commented Sep 15, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
stackless Ready Ready Preview Sep 26, 2026 10:16am UTC

@cursor
cursor Bot marked this pull request as ready for review September 15, 2026 10:27

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thermos review

No medium, high, or critical findings on 5fd19d4 vs main 46d34e1.

Security/correctness and code-quality passes agree. This is a lockstep Stripe Projects 0.39.1 → 0.40.0 catalog-wire rename (ServiceDetail.provider_id → provider, same prvdr_… values) plus fixture/pin bless. Creation-response data.service.provider_id and journal persist stay on that path, as intended.

Checked and ruled out:

  • Fail-closed deserialize without a provider_id alias (doctor pin is 0.40.0)
  • Journal recover identity compare (remote.provider vs service.provider)
  • No leftover hermetic CATALOG_ENVELOPE provider_id keys
  • Catalog 199/199 same IDs; no add/remove; list-order noise only; herenow copy-only description
  • required_parent_services / #108 paid-parent path untouched
  • TRAVERSAL argv unchanged (header/banner only)

Hermetic: stackless-stripe-projects 76/76; integration config_matches_catalog 73/73.

No prior automation threads on this PR.

Open in Web View Automation 

Sent by Cursor Automation: Find vulnerabilities

Plugin stays at 0.40.0. Live catalog grew from 199 to 200 services.
Command surface TRAVERSAL is unchanged.
Register provider = "churnkey" with provisional OUTPUT_FIELDS from
sdk.churnkey.co/llm.md until live discover can pin the envelope.
Narrow the family re-exports so unused_imports allow is unnecessary.
Protect the hand-written adapter from generator regen via SHORT_PROVIDER.
Sync PROVIDERS.md with register_providers! so the catalog table matches
the registry after Churnkey lands and after prior provisional adds.
Companion to the prior PROVIDERS.md sync; the perplexity line was left
unstaged when pre-push stashed the working tree.
…egen

Add SHORT_PROVIDER + OUTPUT_HINTS so mise catalog-integrations regen keeps
the hand-written single-service provider keys.
Keep the provisional OUTPUT_FIELDS marker the allowlist scanner requires.
Regenerate catalog.json, command-surface.txt, and plugin-version.txt via
mise run stripe-refresh against the locally installed projects plugin.
Keep doctor and the TRAVERSAL verified-against comment on the blessed plugin.
The live catalog at plugin 0.41.0 lists 205 services. The fixture had 201. New entries are inngest/growth-2026-09-22, resend/free, resend/pro, and resend/email. A sorted compare of the other services found no field changes. The command surface and the pin stay at 0.41.0.
resend/email is the only new deployable in the 0.41.0 catalog. ResendEmail declares a provisional API_KEY output. Plan services resend/free, resend/pro, and inngest/growth-2026-09-22 stay out of the registry.
Refresh plugin-version.txt, catalog.json, and command-surface.txt from the installed plugin.

inngest/growth-2026-09-22 freeform price is now "$499.00 per month". allowed_updates and parent_services lists changed order only. init and add help now include --testmode.
Match the doctor pin and the TRAVERSAL note to plugin-version.txt.
Remove the TRAVERSAL version stamp, section labels, and test narration. The pinned plugin version stays in plugin-version.txt.
The live catalog changed the organization field copy on pydantic/logfire, pydantic/growth, and pydantic/team. Array order in allowed_updates is unchanged.

This branch was successfully deployed

1 active deployment
Preview — bfc791cb Deployed Sep 26, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant