Architectural Invariant Design: Svelte 5 Runes Universal Store Cross-Request State Leakage Prevention
Svelte 5 Runes Universal Store Cross-Request State Leakage Prevention defines an industrial-grade behavioral standard for frontend engineering. Enforces strict per-request isolation for Svelte 5 reactive runes ($state) in universal and server-side rendering (SSR) environments. In persistent runtime worker environments (Node.js, Bun, Cloudflare Workers), module-level reactive singletons bleed authenticated sessions, PII, and request mutations across concurrent user requests. Engineers must encapsulate mutable state within component contexts or per-request lifecycle factories. Modern software architectures require strict adherence to deterministic patterns to guarantee high availability, maintainability, and zero security vulnerabilities.
Hazard Analysis: What Breaks Without This Rule
The following failure modes have been cataloged from hundreds of hours of production code reviews where AI assistants produced non-compliant implementations:
| Failure Mode | AI Symptom (The Anti-Pattern) | Severity | Production Impact & Remedy |
|---|---|---|---|
| AI Hallucination & Deprecation Drift | Module-Scoped $state() Singletons Leaking Concurrent User Sessions During SSR | Critical | Violating this industrial standard introduces regression bugs, security risks, and unexpected runtime failures in production. Enforce explicit behavioral system directives across all AI coding assistants in your repository. |
| Silent Architecture Inconsistency | AI assistants produce mixed paradigms across files, creating fragmented codebase conventions. | Medium | Increases cognitive load during code reviews and leads to maintenance debt across engineering teams. Pin project conventions in .cursor/rules, CLAUDE.md, and AGENTS.md so all team agents follow identical guardrails. |
Step-by-Step Production Directives
Each rule constraint below is injected into the AI agent's system prompt to establish deterministic boundaries:
Engineers MUST NOT declare mutable `$state` or `$state.raw` singletons at the root module scope of universal `.svelte.ts` files that execute during SSR.
Engineers MUST NOT declare mutable `$state` or `$state.raw` singletons at the root module scope of universal `.svelte.ts` files that execute during SSR.
Engineers MUST encapsulate shared reactive state within a factory function or class instantiated per-request and injected via `setContext` inside root layouts or server-initiated boundaries.
Engineers MUST encapsulate shared reactive state within a factory function or class instantiated per-request and injected via `setContext` inside root layouts or server-initiated boundaries.
Services MUST retrieve reactive session, auth, or transactional state via `getContext` inside the component tree or accept state explicitly as functional parameters.
Services MUST retrieve reactive session, auth, or transactional state via `getContext` inside the component tree or accept state explicitly as functional parameters.
Engineers MUST use `event.locals` in SvelteKit hooks (`hooks.server.ts`) for server-side persistence, passing initial snapshots via data loaders (`+layout.server.ts` or `+page.server.ts`) instead of populating global stores.
Engineers MUST use `event.locals` in SvelteKit hooks (`hooks.server.ts`) for server-side persistence, passing initial snapshots via data loaders (`+layout.server.ts` or `+page.server.ts`) instead of populating global stores.
Components NEVER reassign or mutate module-level exported variables directly in SSR contexts, preventing node process worker cycle contamination across disparate tenant sessions.
Components NEVER reassign or mutate module-level exported variables directly in SSR contexts, preventing node process worker cycle contamination across disparate tenant sessions.
Code SHOULD enforce strict type-safe Context keys using `Symbol()` to prevent collision and verify context existence with defensive assertion wrappers.
Code SHOULD enforce strict type-safe Context keys using `Symbol()` to prevent collision and verify context existence with defensive assertion wrappers.
Frequently Asked Technical Questions
Common questions developers face when configuring AI coding assistants for this stack:
Q:Why is Svelte 5 Runes Universal Store Cross-Request State Leakage Prevention critical for AI coding assistants?
Enforces strict per-request isolation for Svelte 5 reactive runes ($state) in universal and server-side rendering (SSR) environments. In persistent runtime worker environments (Node.js, Bun, Cloudflare Workers), module-level reactive singletons bleed authenticated sessions, PII, and request mutations across concurrent user requests. Engineers must encapsulate mutable state within component contexts or per-request lifecycle factories. Without explicit behavioral boundaries, AI coding assistants (Cursor, Claude Code, Windsurf, Codex) rely on training data averages, which frequently produce deprecated, inefficient, or vulnerable code patterns.
Q:How does adopting this rule prevent AI hallucinations?
This rule explicitly declares what the AI must avoid (Module-Scoped $state() Singletons Leaking Concurrent User Sessions During SSR) and prescribes verified positive examples. Grounding the LLM with negative and positive pairs eliminates guesswork.
Q:Which AI coding environments are supported?
This specification is multi-platform compatible: Cursor (.cursor/rules/*.mdc & .cursorrules), Anthropic Claude Code (CLAUDE.md), Windsurf (.windsurfrules), Codex / Cline (AGENTS.md), and GitHub Copilot (.github/copilot-instructions.md).
Q:Can I combine this rule with other technology stacks?
Yes. Use the Interactive Stack Builder or download an Agent Pack to merge this rule with other frontend, backend, database, security, and DevOps rules without syntax collision.