feat(ui): lock zone type and start audio from BPM

Zone preset vs sequence is fixed at create; edit shows read-only type.
Header BPM button starts beat detection when the detector is stopped.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-19 00:23:15 +12:00
parent b140aedf00
commit baec87068a
4 changed files with 63 additions and 59 deletions

View File

@@ -134,7 +134,11 @@ class Zone(Model):
id_str = str(id)
if id_str not in self:
return False
patch = data if isinstance(data, dict) else {}
patch = dict(data) if isinstance(data, dict) else {}
doc = self[id_str]
locked_kind = self._normalized_content_kind(doc) or self._infer_content_kind(doc)
if "content_kind" in patch:
patch["content_kind"] = locked_kind
self[id_str].update(patch)
if "content_kind" in patch:
self._enforce_content_kind_invariants(self[id_str])