Commit Graph

1586 Commits

Author SHA1 Message Date
gpt-engineer-app[bot]
64e2b893b9 Implement pipeline monitoring alerts
Extend existing alert system to include real-time monitoring for rate limit violations and ban evasion attempts. This involves adding new reporting functions to `pipelineAlerts.ts`, integrating these functions into submission and company helper files, updating the admin dashboard component to display new alert types, and creating a database migration for the new alert type.
2025-11-08 00:39:37 +00:00
gpt-engineer-app[bot]
c79538707c Refactor photo upload pipeline
Implement comprehensive error recovery mechanisms for the photo upload pipeline in `UppyPhotoSubmissionUpload.tsx`. This includes adding exponential backoff to retries, graceful degradation for partial uploads, and cleanup for orphaned Cloudflare images. The changes also enhance error tracking and user feedback for failed uploads.
2025-11-08 00:11:55 +00:00
gpt-engineer-app[bot]
c490bf19c8 Add rate limiting to company submission functions
Implement rate limiting for `submitCompanyCreation` and `submitCompanyUpdate` to prevent abuse and ensure pipeline integrity. This includes adding checks for submission rate limits and recording submission attempts.
2025-11-08 00:08:11 +00:00
gpt-engineer-app[bot]
d4f3861e1d Fix missing recordSubmissionAttempt calls
Added `recordSubmissionAttempt(userId)` to `submitParkCreation`, `submitParkUpdate`, `submitRideCreation`, and `submitRideUpdate` in `src/lib/entitySubmissionHelpers.ts`. This ensures that rate limit counters are incremented after a successful rate limit check, closing a vulnerability that allowed for unlimited submissions of parks and rides.
2025-11-07 21:32:03 +00:00
gpt-engineer-app[bot]
26e2253c70 Fix composite submission protections
Implement Phase 4 by adding `recordSubmissionAttempt` and `withRetry` logic to the ban check for composite submissions. This ensures better error handling and prevents bypass of ban checks due to transient network issues.
2025-11-07 20:24:00 +00:00
gpt-engineer-app[bot]
c52e538932 Apply validation enhancement migration
Apply migration to enhance the `validate_submission_items_for_approval` function with specific error codes and item details. Update `process_approval_transaction` to utilize this enhanced error information for improved debugging and monitoring. This completes Phase 3 of the pipeline audit.
2025-11-07 20:06:23 +00:00
gpt-engineer-app[bot]
48c1e9cdda Fix ride model submissions
Implement rate limiting, ban checks, retry logic, and breadcrumb tracking for ride model creation and update functions. Wrap existing ban checks and database operations in retry logic.
2025-11-07 19:59:32 +00:00
gpt-engineer-app[bot]
2c9358e884 Add protections to company submission functions
Implement rate limiting, ban checks, retry logic, and breadcrumb tracking for all 8 company submission functions: manufacturer, designer, operator, and property_owner (both create and update). This ensures consistency with other protected entity types and enhances the robustness of the submission pipeline.
2025-11-07 19:57:47 +00:00
gpt-engineer-app[bot]
eccbe0ab1f Update process_approval_transaction function
Update the `process_approval_transaction` function to utilize the new `error_code` and `item_details` returned by the enhanced `validate_submission_items_for_approval` function. This will improve error handling and debugging by providing more specific information when validation fails.
2025-11-07 19:41:18 +00:00
gpt-engineer-app[bot]
6731e074a7 Fix photo and timeline submission bulletproofing
Implement rate limiting, validation, retry logic, and ban checking for photo and timeline submissions. This includes updates to `UppyPhotoSubmissionUpload.tsx` and `entitySubmissionHelpers.ts`.
2025-11-07 19:27:30 +00:00
gpt-engineer-app[bot]
91a5b0e7dd Implement Phase 3: Enhanced Error Handling
This commit implements Phase 3 of the Sacred Pipeline, focusing on enhanced error handling. It includes:

- **Transaction Status Polling Endpoint**: A new edge function `check-transaction-status` allows clients to poll the status of moderation transactions using idempotency keys.
- **Expanded Error Sanitizer Patterns**: The `src/lib/errorSanitizer.ts` file has been updated with more comprehensive patterns to remove sensitive information from error messages, making them safer for display and logging. User-friendly replacements for common errors are also included.
- **Rate Limiting for Submission Creation**: Client-side rate limiting has been implemented in `src/lib/submissionRateLimiter.ts` and applied to key submission functions within `src/lib/entitySubmissionHelpers.ts` (e.g., `submitParkCreation`, `submitRideCreation`, `submitParkUpdate`, `submitRideUpdate`) to prevent abuse and accidental duplicate submissions.
2025-11-07 18:22:27 +00:00
gpt-engineer-app[bot]
93b9553e2c Connect to Lovable Cloud
Connect to Lovable Cloud using the supabase--enable tool.
2025-11-07 18:02:30 +00:00
gpt-engineer-app[bot]
9122a570fa Connect to Lovable Cloud
The user approved the use of the Lovable tool. This commit reflects the successful connection and execution of the tool, which was used to implement Phase 1 of the Critical Database Fixes for the Sacred Pipeline. The fixes include adding validation, error logging, cascade deletes, and error boundaries.
2025-11-07 17:37:59 +00:00
gpt-engineer-app[bot]
c7e18206b1 Persist transaction statuses to localStorage
Add persistence for transaction statuses to localStorage in ModerationQueue and SubmissionReviewManager components. This ensures that transaction statuses (processing, timeout, cached, completed, failed) are preserved across page refreshes, providing a more robust user experience during active transactions.
2025-11-07 16:17:34 +00:00
gpt-engineer-app[bot]
e4bcad9680 Add transaction status indicators to moderation UI
Implement visual indicators in the moderation queue and review manager to display the status of ongoing transactions. This includes states for processing, timeout, and cached results, providing users with clearer feedback on the system's activity.
2025-11-07 16:07:48 +00:00
gpt-engineer-app[bot]
b917232220 Refactor useModerationActions for resilience
Integrate transaction resilience features into the `useModerationActions` hook by refactoring the `invokeWithIdempotency` function. This change ensures that all moderation paths, including approvals, rejections, and retries, benefit from timeout detection, automatic lock release, and robust idempotency key management. The `invokeWithIdempotency` function has been replaced with a new `invokeWithResilience` function that incorporates these enhancements.
2025-11-07 15:53:54 +00:00
gpt-engineer-app[bot]
fc8631ff0b Integrate transaction resilience hook
Integrate the `useTransactionResilience` hook into `SubmissionReviewManager.tsx` to add timeout detection, auto-release functionality, and idempotency key management to moderation actions. The `handleApprove` and `handleReject` functions have been updated to use the `executeTransaction` wrapper for these operations.
2025-11-07 15:36:53 +00:00
gpt-engineer-app[bot]
34dbe2e262 Implement Phase 4: Transaction Resilience
This commit implements Phase 4 of the Sacred Pipeline, focusing on transaction resilience. It introduces:

- **Timeout Detection & Recovery**: New utilities in `src/lib/timeoutDetection.ts` to detect, categorize (minor, moderate, critical), and provide recovery strategies for timeouts across various sources (fetch, Supabase, edge functions, database). Includes a `withTimeout` wrapper.
- **Lock Auto-Release**: Implemented in `src/lib/moderation/lockAutoRelease.ts` to automatically release submission locks on error, timeout, abandonment, or inactivity. Includes mechanisms for unload events and inactivity monitoring.
- **Idempotency Key Lifecycle Management**: A new module `src/lib/idempotencyLifecycle.ts` to track idempotency keys through their states (pending, processing, completed, failed, expired) using IndexedDB. Includes automatic cleanup of expired keys.
- **Enhanced Idempotency Helpers**: Updated `src/lib/idempotencyHelpers.ts` to integrate with the new lifecycle management, providing functions to generate, register, validate, and update the status of idempotency keys.
- **Transaction Resilience Hook**: A new hook `src/hooks/useTransactionResilience.ts` that combines timeout handling, lock auto-release, and idempotency key management for robust transaction execution.
- **Submission Queue Integration**: Updated `src/hooks/useSubmissionQueue.ts` to leverage the new submission queue and idempotency lifecycle functionalities.
- **Documentation**: Added `PHASE4_TRANSACTION_RESILIENCE.md` detailing the implemented features and their usage.
2025-11-07 15:03:12 +00:00
gpt-engineer-app[bot]
095278dafd Implement client-side resilience UI
Create NetworkErrorBanner, SubmissionQueueIndicator, and enhanced retry progress UI components. Integrate them into the application using a ResilienceProvider to manage network status and submission queue states. Update App.tsx to include the ResilienceProvider.
2025-11-07 14:54:06 +00:00
gpt-engineer-app[bot]
d903e96e13 Implement pipeline monitoring alerts
Approve and implement the Supabase migration for the pipeline monitoring alert system. This includes expanding alert types, adding new monitoring functions, and updating existing ones with escalating thresholds.
2025-11-07 05:05:32 +00:00
gpt-engineer-app[bot]
a74b8d6e74 Fix: Implement pipeline error handling
Implement comprehensive error handling and robustness measures across the entire pipeline as per the detailed plan. This includes database-level security, client-side validation, scheduled maintenance, and fallback mechanisms for edge function failures.
2025-11-07 04:50:17 +00:00
gpt-engineer-app[bot]
03aab90c90 Fix test parameter mismatches
Correct parameter names in integration tests to resolve TypeScript errors. The errors indicate a mismatch between expected and actual parameter names (`p_user_id` vs `_user_id`) in Supabase-generated types, which are now being aligned.
2025-11-07 01:13:55 +00:00
gpt-engineer-app[bot]
e747e1f881 Implement RLS and security functions
Apply Row Level Security to orphaned_images and system_alerts tables. Create RLS policies for admin/moderator access. Replace system_health view with get_system_health() function.
2025-11-07 01:02:58 +00:00
gpt-engineer-app[bot]
6bc5343256 Apply database hardening migrations
Approve and apply the latest set of database migrations for Phase 4: Application Boundary Hardening. These migrations include orphan image cleanup, slug validation triggers, monitoring and alerting infrastructure, and scheduled maintenance functions.
2025-11-07 00:59:49 +00:00
gpt-engineer-app[bot]
eac9902bb0 Implement Phase 3 fixes
The AI has implemented the Phase 3 plan, which includes adding approval failure monitoring to the existing error monitoring page, extending the ErrorAnalytics component with approval metrics, adding performance indexes, and creating the ApprovalFailureModal component.
2025-11-07 00:22:38 +00:00
gpt-engineer-app[bot]
24dbf5bbba Implement critical fixes
Approve and implement Phase 1 critical fixes including CORS, RPC rollback, idempotency, timeouts, and deadlock retry.
2025-11-06 21:51:39 +00:00
gpt-engineer-app[bot]
bd2f9a5a9e Remove old approval flow
Implement the destructive migration plan to remove the old approval flow entirely. This includes deleting the legacy edge function, removing the toggle component, simplifying frontend code, and updating documentation.
2025-11-06 21:14:59 +00:00
gpt-engineer-app[bot]
406edc96df Implement 100% atomic transaction rollout
Update actions.ts and ApprovalTransactionToggle.tsx to default to the new atomic transaction RPC flow. The feature flag can now be used to disable the new flow for emergency rollback.
2025-11-06 20:48:18 +00:00
gpt-engineer-app[bot]
3be551dc5a Implement blue-green deployment
Implement blue-green deployment strategy for approval flow. This involves deploying the new RPC function alongside the existing edge function, creating a new edge function that calls the RPC, and adding a feature flag to the frontend to toggle between the old and new flows. The plan includes testing in production, gradual rollout, and eventual deprecation of the old edge function.
2025-11-06 20:36:10 +00:00
gpt-engineer-app[bot]
67525173cb Approve tool use
The user has approved the tool use.
2025-11-06 20:15:14 +00:00
gpt-engineer-app[bot]
edd12b4454 Approve tool use
Approve tool use based on context.
2025-11-06 20:11:48 +00:00
gpt-engineer-app[bot]
371995724a feat: Approve tool use
Approve the use of a lovable tool.
2025-11-06 19:13:52 +00:00
gpt-engineer-app[bot]
b92a62ebc8 feat: Add idempotency to useModerationActions
Implement idempotency integration in the useModerationActions hook as per the detailed plan.
2025-11-06 17:43:16 +00:00
gpt-engineer-app[bot]
93a3fb93fa Fix: Correct idempotency key migration
Corrected database migration for idempotency keys to resolve issues with partial indexes using `now()`. The migration now includes the `submission_idempotency_keys` table, indexes, RLS policies, a cleanup function, and an `idempotency_stats` view.
2025-11-06 16:29:03 +00:00
gpt-engineer-app[bot]
e7f5aa9d17 Refactor validation to edge function
Centralize all business logic validation within the edge function for the submission pipeline. Remove validation logic from React hooks, retaining only basic UX validation (e.g., checking for empty fields). This ensures a single source of truth for validation, preventing inconsistencies between the frontend and backend.
2025-11-06 16:18:34 +00:00
gpt-engineer-app[bot]
41a396b063 Fix parenthesis error in moderation actions
Fix missing closing parenthesis in `src/hooks/moderation/useModerationActions.ts` to resolve the build error.
2025-11-06 15:49:49 +00:00
gpt-engineer-app[bot]
5b0ac813e2 Fix park submission locations
Implement Phase 1 of the JSONB violation fix by creating the `park_submission_locations` table. This includes migrating existing data from `park_submissions.temp_location_data` and updating relevant code to read and write to the new relational table. The `temp_location_data` column will be dropped after data migration.
2025-11-06 15:45:12 +00:00
gpt-engineer-app[bot]
4d7b00e4e7 feat: Implement rich timeline event display
Implement the plan to enhance the display of timeline event submissions in the moderation queue. This includes fixing the database function to fetch timeline event data, creating a new `RichTimelineEventDisplay` component, and updating the `SubmissionItemsList` and `TimelineEventPreview` components to leverage this new display. The goal is to provide moderators with complete and contextually rich information for timeline events.
2025-11-06 15:24:46 +00:00
gpt-engineer-app[bot]
bd4f75bfb2 Fix entity submission pipelines
Refactor park updates, ride updates, and timeline event submissions to use dedicated relational tables instead of JSON blobs in `submission_items.item_data`. This enforces the "NO JSON IN SQL" rule, improving queryability, data integrity, and consistency across the pipeline.
2025-11-06 15:13:36 +00:00
gpt-engineer-app[bot]
ed9d17bf10 Fix ride model technical specs
Implement plan to fix ride model technical specifications pipeline. This includes creating a new migration for the `ride_model_submission_technical_specifications` table, updating `entitySubmissionHelpers.ts` to handle insertion of technical specifications, and modifying the edge function `process-selective-approval/index.ts` to fetch these specifications. This ensures no data loss for ride model technical specifications.
2025-11-06 15:03:51 +00:00
gpt-engineer-app[bot]
de9a48951f Fix ride submission data loss
Implement the plan to fix critical data loss in ride submissions. This includes:
- Storing ride technical specifications, coaster statistics, and name history in submission tables.
- Adding missing category-specific fields to the `ride_submissions` table via a new migration.
- Updating submission helpers and the edge function to include these new fields.
- Fixing the park location Zod schema to include `street_address`.
2025-11-06 14:51:36 +00:00
gpt-engineer-app[bot]
9159b2ce89 Fix submission flow for street address
Update submission and moderation pipeline to correctly handle `street_address`. This includes:
- Adding `street_address` to the Zod schema in `ParkForm.tsx`.
- Ensuring `street_address` is included in `tempLocationData` for park and composite park creations in `entitySubmissionHelpers.ts`.
- Preserving `street_address` when editing submissions in `submissionItemsService.ts`.
- Saving `street_address` when new locations are created during submission approval in `submissionItemsService.ts`.
2025-11-06 14:15:45 +00:00
gpt-engineer-app[bot]
fc7c2d5adc Refactor park detail address display
Implement the plan to refactor the address display in the park detail page. This includes updating the sidebar address to show the street address on its own line, followed by city, state, and postal code on the next line, and the country on a separate line. This change aims to create a more compact and natural address format.
2025-11-06 14:03:58 +00:00
gpt-engineer-app[bot]
98fbc94476 feat: Add street address to locations
Adds a street_address column to the locations table and updates the LocationSearch component to capture, store, and display full street addresses. This includes database migration, interface updates, and formatter logic.
2025-11-06 13:51:40 +00:00
gpt-engineer-app[bot]
e631ecc2b1 Fix: Remove unused 'content' column from submissions 2025-11-06 05:09:44 +00:00
gpt-engineer-app[bot]
b189f40c1f Fix date display and edit form issues 2025-11-06 05:01:51 +00:00
gpt-engineer-app[bot]
d00ea2a3ee Fix 406 errors in validation 2025-11-06 04:47:35 +00:00
gpt-engineer-app[bot]
5c24038470 Refactor moderation queue display 2025-11-06 04:42:00 +00:00
gpt-engineer-app[bot]
93e8e98957 Fix: Display temp location data 2025-11-06 04:37:48 +00:00
gpt-engineer-app[bot]
c8a015a15b Fix park type and moderator ID 2025-11-06 04:33:26 +00:00