app
diff
⌘K

Diff & Review

Compare versions of pseudo-artifacts, diagrams, and generated code.

Recent Changes
Comparing: v0.8.2 vs v0.9.0
+14 -2 lines
Base (v0.8.2)

1 name: Authentication

2 id: auth

3 description: Handles user login and sessions.

4 -dependencies: []

5 interfaces:

6 - login(username, password)

7 - logout()

Head (v0.9.0)

1 name: Authentication

2 id: auth

3 description: Handles user login and sessions.

4 +dependencies:

5 + - database

6 + - config

7 interfaces:

8 - login(username, password)

9 - logout()

10+ - check_session()

This change was suggested by AI to improve traceability.
AI CopilotBeta
Hello! I'm your AI modernization copilot. I have context on your legacy CRM codebase. How can I help you today?
Explain the billing flow and identify the 3 riskiest assumptions.
The billing flow in your legacy PHP app is primarily centered around `src/billing/invoice_gen.php`. **Flow Overview:** 1. A cron job triggers the billing run. 2. It fetches all active subscriptions using a large raw SQL join. 3. For each customer, it calculates the usage and generates a PDF using a legacy library. 4. It calls the Stripe API (v2015-04-07) to process payments. **Riskiest Assumptions:** - **Database Consistency:** The SQL query assumes that all records in `subscriptions` have a matching `customer_id` in the `users` table, but there are no foreign keys in the legacy schema. - **API Availability:** The Stripe API call is synchronous and lacks a retry mechanism. If Stripe is down, the billing run fails mid-way without recording progress. - **Concurrency:** The billing run is not idempotent. Running it twice on the same day will double-charge customers.
#repo#analysis#pseudo