Commit Graph
14 Commits
Author SHA1 Message Date
Christian Vidal WolfandClaude Sonnet 4.6 dec24f52f4 Security: Enable RLS support by passing user JWT in Supabase requests
Replaced hardcoded anon key as Bearer token with authHeaders() helper
that uses the authenticated user's access_token when available, enabling
Row Level Security policies to identify the calling user correctly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 09:59:46 +02:00
Christian Vidal Wolf dcdf50593d Comprehensive audit: Replace backend JWT dependency universally with anon key and strict cache rules 2026-04-10 19:56:42 +02:00
Christian Vidal Wolf d9cc1f4506 Fix silent failure on getAllSyncedRows by forcing anon key 2026-04-10 19:52:30 +02:00
Christian Vidal Wolf d3c90120f4 Force anon key on getHistory and expose errors visually 2026-04-10 19:48:33 +02:00
Christian Vidal Wolf 1c72eae60a Disable fetch cache to sync history across computers 2026-04-10 19:45:05 +02:00
Christian Vidal Wolf db91aeb842 Improve Supabase error reporting for diagnostic purposes 2026-04-10 12:06:16 +02:00
Christian Vidal Wolf ee73b85100 Fix save changes looping issue and authorize all Supabase API calls 2026-04-10 12:03:12 +02:00
Christian Vidal Wolf 077e78513c fix: use POST with upsert instead of PATCH to handle new products 2026-04-10 10:48:05 +02:00
Christian Vidal Wolf 23f4b508c8 Delete history entry after revert 2026-04-10 09:47:35 +02:00
Christian Vidal Wolf 899016f0a0 feat: add Pending Validation tab showing all pending changes 2026-04-09 09:24:17 +02:00
Christian Vidal WolfandClaude Sonnet 4.6 c544b9b709 feat: persistent multi-step undo system in TopBar
fix: save all changes to Supabase with reliable upsert

- Replace broken PATCH→POST fallback with single atomic upsert (POST +
  Prefer: resolution=merge-duplicates). The old PATCH returned 200 OK
  with empty body for new articles, causing silent data loss on every
  first save per article.
- Fix getAllSyncedRows pagination: add explicit limit=10000 and Range
  header to bypass Supabase's default 1000-row cap.
- Add fetchWithRetry helper (2 retries on 5xx/network errors).
- handleSaveRow now returns Promise<boolean> and closes EditPanel only
  after a confirmed successful save.
- Add 'error' save status: failed rows turn red (border-l-red-500)
  across ProductDescriptions, ArticleDetails, and PricingView.
- EditPanel shows saving spinner, disables buttons while saving, and
  displays inline error message with "Retry Save" on failure.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 08:22:58 +02:00
Christian Vidal Wolf 72e653e353 feat: persistent validation visibility in DimensionsView and selection fixes 2026-04-08 20:05:24 +02:00
Christian Vidal Wolf 0d47f5be33 feat: implement persistence system with visual highlighting and auto-reset on export 2026-04-08 19:30:41 +02:00
christian.vidal f43d8f367e feat: persist edits to Supabase database 2026-03-27 12:23:35 +01:00