Skip to content

settings: whole-array writes have no version guard — lost updates on concurrent edits (Tts:Pronunciations et al.) #486

Description

@genwave-radio

Surfaced at T144's review (probe: DELETE ∥ PUT both 2xx, the edit silently vanished — whichever whole-array revision writes last wins). StationSettingsStore.WriteAsync is a blind upsert; every JSON-array settings key (Tts:Pronunciations, Tts:Corrections, …) carries the posture. Content addressing (T144) means a concurrent write can only LOSE a revision, never mutate the wrong rule — ruled acceptable for the single-operator surface. The fuller fix is the house MediaController.Patch precedent: If-Match over an ETag of the serialized array → 428 absent / 409 mismatch. Project #9.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium prioritybugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions