fix(aihr): close practice audio URL exposure

This commit is contained in:
2026-07-15 01:32:02 +08:00
parent 09c3cbecb0
commit 2f44e6b7d1
10 changed files with 51 additions and 19 deletions
@@ -197,9 +197,11 @@ const audioRequests = createAsyncGenerationGuard();
const editable = computed(() => isReviewEditable(detail.value?.status));
const audioKey = (index: number) => `${reviewId.value || 'review'}-${index}`;
const hasAudio = (turn: ReviewDialogue) => Boolean(turn.audioOssId || turn.audioUrl);
const inlineAudioSrc = (turn: ReviewDialogue) =>
turn.audioUrl?.startsWith('data:audio/') ? turn.audioUrl : '';
const hasAudio = (turn: ReviewDialogue) => Boolean(turn.audioOssId || inlineAudioSrc(turn));
const audioSrc = (turn: ReviewDialogue, index: number) =>
audioSources.value[audioKey(index)] || (!turn.audioOssId ? turn.audioUrl || '' : '');
audioSources.value[audioKey(index)] || inlineAudioSrc(turn);
const releaseAudioSources = () => {
audioRequests.invalidate();
+4 -2
View File
@@ -96,8 +96,10 @@ const audioSources = ref<Record<number, string>>({});
const audioLoading = ref<Record<number, boolean>>({});
const audioErrors = ref<Record<number, string>>({});
const audioSrc = (turn: ReviewDialogue, index: number) => audioSources.value[index] || turn.audioUrl || '';
const hasAudio = (turn: ReviewDialogue) => Boolean(turn.audioOssId || turn.audioUrl);
const inlineAudioSrc = (turn: ReviewDialogue) =>
turn.audioUrl?.startsWith('data:audio/') ? turn.audioUrl : '';
const audioSrc = (turn: ReviewDialogue, index: number) => audioSources.value[index] || inlineAudioSrc(turn);
const hasAudio = (turn: ReviewDialogue) => Boolean(turn.audioOssId || inlineAudioSrc(turn));
const releaseAudio = () => {
Object.values(audioSources.value).forEach(releaseAuthenticatedFileUrl);