-
feat(media): convert legacy references to allocated asset ids (#1101)
发布于
2026-08-15 09:38:04 +00:00 Lands epic #1007 part 2(c): the app-side reference converter, the
audioUrl
removal, and theDSL_VERSIONbump as one delivery unit.convertDocumentAssetRefswalks a loaded document (slide canvases, whiteboards,
video-manifest keys, speech actions) and rewrites legacy handles to allocated
pool ids: placeholders andaudioIds with local bytes are ingested, a co-present
audioUrl/audioIdpair collapses to one asset, a definitively dead URL
converts to an emptied reference, and a transient failure keeps both handles for
a later retry. Unavailable bytes leave the document untouched for a later open,
and a converted document returns by identity with no writes.Conversion runs lazily on document open and at fetch time for server-generated
classrooms, with conversion and the first document save sharing the per-stage
document lock: once the document commits it owns every allocation, and every
failure exit rolls its pass ledger back. Legacy URL probes are bounded by a
per-probe timeout and a shared 60-second pass budget.SpeechAction.audioUrlis removed from the DSL and every consumer reads the
converted shape; the server classroom generator keeps its derived-id + serving-URL
pair as an explicitly typed pre-conversion transport, consumed before persistence.
DSL_VERSIONbecomes 0.2.0 with the first real ladder entry, and
@openmaic/dslgoes to 0.9.0 per the release rule.Deferred follow-ups are tracked in #1129: production principal derivation with
document/asset ownership aligned, conditional document writes, and hoisting the
aggregate probe budget into the export and video-timeline paths.Refs #1007
下载附件