# 1.1.0 state ownership and files > Version: 1.1.0. Release requirements; implementation and delivery are recorded below. > [Verification status](/Riff/1-1-0/status). ## Single persistent writer Indexer alone persists profile state, queues, bookmarks, reactions, listening history and the installation settings formerly held in player-state.sqlite. Player owns UI, playback, AI selection, observations and a RAM outbox until durable acknowledgement. These user databases use FlatBuffers only; their SQLite store, WAL, SQLite recovery snapshots and global state_revision are removed. The three built-in profile slots remain 1, 2 and 3. A slot is an ordinal, not a hash identifier. Each has independent profile_state.fb and listening_history.fb logical files. One installation_state.fb stores installation-wide preferences. Catalog Cuetree, MDRG and GNRE retain separate storage ownership and clocks, subject to the 1.1.0 identifier rule. Every logical file starts at generation zero. A successful changed publication advances that file once; unchanged files and failed candidates advance nothing. Generations are bounded by Long.MAX_VALUE, never wrap, and are never compared across files. There is no common user-database generation. User publications do not advance catalog TTL. No user timestamps are persisted. Runtime monotonic timing is permitted for scheduling and measuring playback; positions and durations remain media-relative quantities. ## Profile contents Store theme, long-press playback, auto search, leading-article handling, Music/Books mode, audiobook speed, AI size/PTE/Arousal/Valence, exact-object reactions, Music/Book overrides, one always-present dynamic queue, saved queues and a last-queue reference. Like/Dislike are mutually exclusive; Ban is independent. Existing Book reaction restrictions apply. An absent classification override means Auto. AI feature/model data remain Indexer inputs. The file does not store all previously opened Album/Title resume contexts, lifetime play counts, an unbounded journal or speculative learned-state blobs. Installation state contains the active UI profile slot, playback-owner profile slot, diagonal mode, calibration, Dim Backlight and ReplayGain mode/target. Profile switching preserves playback ownership. A command captures profile/root/session before enqueue; subsequent UI changes cannot retarget it. ## Boundaries Minimal selected-root bootstrap and its recovery/relocation journal retain their established owner. Android remains the authority for persisted SAF grants. User JSON is discovered under [external configuration](/Riff/1-1-0/configuration), never in the private Player directory. No user-profile replica is placed in bootstrap or a second storage root. Exactly one selected application-data root is authoritative. Existing unavailable-volume admission, explicit reset, source grants, relocation fences, motion gates and audio-focus policy continue. Indexer must be able to open existing user snapshots before starting expensive catalog work. The initial state has all seven logical files, empty histories and empty dynamic queues. A valid existing current-format store must never be silently reset because of an I/O or permission error. Pre-existing incompatible data follow the project's explicit format/reset policy; this change provides no SQLite importer or compatibility reader and authorizes no data deletion now. ## Persistence-only admission User-state persistence is available with zero persisted media grants. Its connection to Indexer is independent of enabling the catalog UI. This replaces the baseline zero-grant bind prohibition only for persistence admission; it does not authorize media discovery or an observation publication. A persistence-only cold start must not advance catalog TTL. Explicit rebuild and an actual committed SAF grant change retain their own existing scan semantics. The first subsequent grant change uses the barrier when the shared Indexer connection is already bound, even if no catalog consumer has subscribed yet. It then enables that consumer and requests exactly the post-barrier observation, not an assumed fresh bind.