Skip to content

Configure Stripe production deployment#287

Merged
bokelley merged 7 commits into
mainfrom
bokelley/stripe-prod-setup
Dec 12, 2025
Merged

Configure Stripe production deployment#287
bokelley merged 7 commits into
mainfrom
bokelley/stripe-prod-setup

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

Summary

Configures Stripe production secrets (publishable key, secret key, pricing table ID, and webhook signing secret) for live billing integration.

All Stripe secrets have been set in the Fly.io production environment and are ready for live payment processing.

Changes

  • No code changes - environment configuration only
  • Stripe webhook endpoint: configured in Stripe Dashboard
  • All required events (customer.subscription.created, customer.subscription.updated, customer.subscription.deleted) enabled

bokelley and others added 7 commits December 11, 2025 20:48
- Create /insights/launch-announcement page with full press release
- Add launch announcement card to Insights index
- Update About page news section with press release link
- Add route for /insights/launch-announcement in http.ts
The pricing table was being rendered in HTML without the customer-session-client-secret
attribute. By the time JavaScript fetched the session and tried to setAttribute(),
the Stripe web component had already initialized and ignored the change.

Fix: Dynamically create the pricing table element after loading the customer session,
ensuring all attributes are set before the component initializes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Personal workspaces now show STRIPE_PRICING_TABLE_ID_INDIVIDUAL while
team workspaces show STRIPE_PRICING_TABLE_ID. Falls back to the main
pricing table ID if the individual one isn't configured.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add join request database with pending/approved/rejected states
- Add email domain utility for matching users to organizations
- Add free-email-domains package to detect personal email providers
- Update onboarding UI to show joinable organizations based on email domain
- Add migration for organization_join_requests table

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@bokelley
bokelley merged commit 4462d81 into main Dec 12, 2025
5 checks passed
bokelley added a commit that referenced this pull request Apr 28, 2026
…itative (#3380)

Found via escalation #287 (wheelrandom.com). Publisher's adagents.json was
valid and anchored, but registry showed 0 authorizations.

Root cause: when projectPropertyToCatalog adopts a foreign rid via the
publisher-anchor path (Rule 4), the UPDATE refreshed adagents_url +
property_id only — leaving source='contributed' and created_by='community:foo'
(or whatever pipeline previously owned the rid). The auth projection's
`WHERE created_by = 'adagents_json:<pub>' AND property_id = ANY(...)` then
returned zero rows, and authorized_agents[] entries silently dropped.

Fix: also set source='authoritative' and created_by=expectedCreatedBy on the
adopt path. The publisher with a matching anchor is now the source-of-truth
pipeline for this property; its created_by should reflect that. Idempotent
for own re-crawls (the SET is a no-op when matchedCreatedBy already equals
expectedCreatedBy).

Test added (registry-catalog-agent-auth-writer.test.ts): pre-seed a
'contributed'/'community:<pub>' catalog row + identifier, then crawl an
adagents.json that references the same domain. Asserts the rid is reused,
source promoted to 'authoritative', created_by rebound, and the auth
projection lands a CAA row referencing the promoted rid.

Refs #3177.
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