1.9 KiB
M16-GAP-00023 Status
status: done task: Speaker data-block LOCAL_EXACT slice updated: 2026-08-20 America/New_York
scope: Blender 5.2 Speaker identity and bounded speaker resource fields through the same generated fixture in desktop and WASM/Main: linked sound identity, volume limits, distance controls, attenuation, cone controls, volume and pitch.
evidence:
tools/web/generated/M16-GAP-00023.pydeterministically createsspeaker:WebGapSpeakerlinked tosound:WebGapSpeakerSoundand saves the Blend fixture.- Desktop reopen report matches exactly for the speaker identity, linked sound and all bounded fields.
- The reader exports Blender's
Speakerstructure as aspeakersScene IR resource, including the linked sound ID; protocol validation bounds the resource fields. - WASM/Main opened the same fixture, matched every desktop speaker field, saved and reopened with an identical snapshot, and rejected a truncated Blend without mutating the loaded Main.
build_blender_5.2.0/bin/blender -b --factory-startup --python tools/web/generated/M16-GAP-00023.py -- tests/files/web/generated/M16-GAP-00023-datablock-Speaker.blendexited 0.npm --prefix web run test:generated-gap -- --task M16-GAP-00023exited 0.node tools/web/check-generated-gap.mjs --task M16-GAP-00023exited 0.
artifacts: tests/golden/M16-GAP-00023/manifest.json contains SHA-256 for the parent manifest, fixture, generator, desktop/Web checkers, reader/protocol/runtime and both reports.
knownRisk: This closes only the datablock:Speaker resource-observability slice. Audio playback, speaker operators and other data-blocks remain separate tasks.
rollback: remove this task's fixture, generator, desktop checker, checker branch, reader/protocol/runtime changes, reports, manifest, status and context; restore M16-GAP-00022 as the queue tail without editing its successful evidence.
nextTask: M16-GAP-00024