diff --git a/ISSUES.md b/ISSUES.md new file mode 100644 index 0000000..206e61c --- /dev/null +++ b/ISSUES.md @@ -0,0 +1,155 @@ +# Mizan — Known Issues + +Identified by domain expert review (Cloudflare, Serverless, Vercel, React Query, Django, Laravel, Vue/Svelte). + +## Critical + +### C1. Scoped cache purge doesn't pass user_id/rev +**File:** `mizan-django/src/mizan/client/executor.py` — cache_purge call in function_call_view +The scoped purge recomputes the HMAC with `user_id=None, rev=0`, but the entry was stored with the actual user_id and rev. The key never matches. Stale data persists until TTL expires. + +### C2. initSession swallows errors permanently +**File:** `mizan-runtime/src/index.ts` — initSession() +If the session init fetch fails, the promise resolves (catch swallows). Every subsequent call returns the resolved promise. CSRF is broken for the page lifetime with no recovery. + +### C3. SSR hydration data never written +**File:** `mizan-django/src/mizan/ssr/backend.py` — MizanTemplate.render() +Generated code checks `window.__MIZAN_SSR_DATA__` but nothing injects it. The `