Files
feedBack-desktop/tests/contracts/ipc-channels.json
T
OmikronApexandClaude Fable 5 5ecf55cb0c feat(audio): wire lease registry into IPC — leases surface, demand glue, legacy telemetry
Phase A wiring (plan §6.8/§8/§9):
- lease-bridge.ts: holder identity derived from the IPC sender (compound
  identity — enforced wc id + attributed tag), webContents destroy →
  death invalidation, main-frame navigation → reload grace window,
  capture demand drives startAudio/stopAudio, detection demand drives
  setNoteDetectionEnabled.
- audio-bridge.ts: audio:leases:* channels; raw startAudio/stopAudio now
  resume/suspend demands (user authority, §8.3); raw detection disarm is
  ignored while a demand holder still needs it armed (fixes 6.3's
  last-disarmer-kills-concurrent-consumer); log-once legacy telemetry.
- preload: audio.leases.* (acquire/release/takeover/getHolder/
  acquireDemand/releaseDemand/snapshot/onEvent).
- contract snapshots regenerated deliberately (7 IPC channels, 1 preload key).
- tests: lease-bridge suite (9) incl. death matrix destroy/reload paths;
  _load-ts gains a .ts require hook for cross-module TS imports.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 22:13:16 +02:00

115 lines
2.9 KiB
JSON

[
"audio-effects:activateSegment",
"audio-effects:inspectRoute",
"audio-effects:loadChainPlan",
"audio-effects:releaseRoute",
"audio-effects:setRouteGain",
"audio-effects:setStageBypass",
"audio-effects:setStageParameter",
"audio:addSource",
"audio:bindInputDevice",
"audio:clearChain",
"audio:clearStreamOutput",
"audio:closePluginEditor",
"audio:detectNotes",
"audio:getBackingDuration",
"audio:getBackingLevel",
"audio:getBackingPosition",
"audio:getBufferSizes",
"audio:getChainState",
"audio:getCurrentDevice",
"audio:getDeviceMetrics",
"audio:getDeviceTypes",
"audio:getKnownPlugins",
"audio:getLevels",
"audio:getNoteVerdicts",
"audio:getParameters",
"audio:getPitchDetection",
"audio:getRawAudioFrame",
"audio:getRawPitch",
"audio:getRendererBusMetrics",
"audio:getSampleRate",
"audio:getSampleRates",
"audio:getSourceLevels",
"audio:getSourceNoteVerdicts",
"audio:getSourcePitchDetection",
"audio:getSourceRawAudioFrame",
"audio:getSourceRawPitch",
"audio:getStreamOverflowCount",
"audio:getStreamSinkLevel",
"audio:getStreamUnderflowCount",
"audio:isAudioRunning",
"audio:isAvailable",
"audio:isBackingPlaying",
"audio:isMlNoteDetection",
"audio:isMonitorMuted",
"audio:isStreamOutputActive",
"audio:leases:acquire",
"audio:leases:acquireDemand",
"audio:leases:getHolder",
"audio:leases:release",
"audio:leases:releaseDemand",
"audio:leases:snapshot",
"audio:leases:takeover",
"audio:listInputDevices",
"audio:listSources",
"audio:loadBackingTrack",
"audio:loadDeviceSettings",
"audio:loadIR",
"audio:loadNAMModel",
"audio:loadPluginList",
"audio:loadPreset",
"audio:loadVST",
"audio:moveProcessor",
"audio:openPluginEditor",
"audio:probeDeviceOptions",
"audio:pushRendererAudio",
"audio:removeProcessor",
"audio:removeSource",
"audio:replaceIR",
"audio:resetPeaks",
"audio:saveDeviceSettings",
"audio:savePluginList",
"audio:savePreset",
"audio:scanPlugins",
"audio:scoreChord",
"audio:scoreSourceChord",
"audio:seekBacking",
"audio:sendMidiToSlot",
"audio:setBackingSpeed",
"audio:setBranch",
"audio:setBranchSrc",
"audio:setBypass",
"audio:setChart",
"audio:setDevice",
"audio:setDeviceType",
"audio:setGain",
"audio:setInputChannel",
"audio:setMonitorKill",
"audio:setMonitorMute",
"audio:setMonitorMuteSuppressed",
"audio:setMultiBypass",
"audio:setNoiseGate",
"audio:setNoteDetectionEnabled",
"audio:setOutputDeviceType",
"audio:setPan",
"audio:setParameter",
"audio:setPostGain",
"audio:setRendererBus",
"audio:setSlotState",
"audio:setSourceChart",
"audio:setSourceInputChannel",
"audio:setSourceMonitorMute",
"audio:setSourceVerifierOffset",
"audio:setStreamBus",
"audio:setStreamBusGain",
"audio:setStreamOutputDevice",
"audio:setTonePolish",
"audio:startAudio",
"audio:startBacking",
"audio:stopAudio",
"audio:stopBacking",
"audio:unbindInputDevice",
"debug:isEnabled"
]