Skip to content

refactor: build the persisted stream dedupe key with keyenc - #416

Merged
cplieger merged 1 commit into
mainfrom
refactor/adopt-keyenc
Jul 31, 2026
Merged

refactor: build the persisted stream dedupe key with keyenc#416
cplieger merged 1 commit into
mainfrom
refactor/adopt-keyenc

Conversation

@cplieger

Copy link
Copy Markdown
Owner

refactor: build the persisted stream dedupe key with keyenc

The key concatenated a literal, a Plex user id, a rating key and two stream ids
with ':'. Only the two stream ids are numeric; the user id comes from the
sessions response and the rating key from a WebSocket notification, and neither
is validated separator-free. The trailing colon-free fields kept the old form
injective, so this is a robustness adoption rather than a live fix: the
injectivity was a property of the current field ORDER, not of the encoding, and
adding a field or moving one would have silently ended it.

Byte-identical for every ordinary input, which matters because these keys are
persisted in state.json: only a tuple whose fields actually contain ':' or ''
re-keys, and that is exactly the tuple that was colliding. Such an entry is
re-processed once (one redundant, idempotent propagation) and then dedupes
normally.

The key concatenated a literal, a Plex user id, a rating key and two stream ids
with ':'. Only the two stream ids are numeric; the user id comes from the
sessions response and the rating key from a WebSocket notification, and neither
is validated separator-free. The trailing colon-free fields kept the old form
injective, so this is a robustness adoption rather than a live fix: the
injectivity was a property of the current field ORDER, not of the encoding, and
adding a field or moving one would have silently ended it.

Byte-identical for every ordinary input, which matters because these keys are
persisted in state.json: only a tuple whose fields actually contain ':' or '\'
re-keys, and that is exactly the tuple that was colliding. Such an entry is
re-processed once (one redundant, idempotent propagation) and then dedupes
normally.
@cplieger
cplieger merged commit 9f6fadd into main Jul 31, 2026
20 checks passed
@cplieger
cplieger deleted the refactor/adopt-keyenc branch July 31, 2026 13:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant