The composer, prompt history and comment stores port to plain codecs, persisted() becomes codec-only and the Effect-based Persistence helpers are removed. Session-file import keeps validating against the shared Effect schema from a lazily loaded module with static imports, so the bundler keeps only what it uses. The desktop renderer's SSH reconnect polls with a timer instead of an Effect schedule. Effect remains in the renderer's initial graph only through the shared schema package's ID helpers.