# Posting and Appreciate Issue Fix

## Symptoms
- One account could post and appreciate, another could not.
- Client showed `ClientFailed to fetch` with no useful error details.

## Root Causes
1) **Missing `user_settings` rows**  
   The failing account had no `user_settings` row, which `publish-post` relies on
   when determining TTL defaults. That caused requests to fail silently.

2) **CORS headers missing on edge functions**  
   The browser blocked responses from `publish-post` and `appreciate`, producing
   a generic `ClientFailed to fetch` instead of the real error response.

## Fixes Applied
### 1) Backfill `user_settings` and ensure new users get it
Migration added:
- Creates `user_settings` table if missing.
- Backfills rows for all existing users.
- Updates `handle_new_user` trigger to insert a `user_settings` row.

File: `supabase/migrations/20260121_create_user_settings.sql`

### 2) Add CORS headers to edge functions
Both edge functions now return CORS headers for **all** responses.
This prevents the browser from hiding the response body.

Files:
- `supabase/functions/publish-post/index.ts`
- `supabase/functions/appreciate/index.ts`

## Deployment Steps
1) Apply migrations (includes `20260121_create_user_settings.sql`).
2) Redeploy edge functions:
   - `publish-post`
   - `appreciate`

## Validation Checklist
- `select * from user_settings where user_id = '<user_id>';` returns a row.
- Posting succeeds for both accounts.
- Appreciating posts returns 200 and no browser CORS errors.

