From d9160c44936be08a44e1d245945fc85ece85adc1 Mon Sep 17 00:00:00 2001 From: Hermann_Kitio Date: Thu, 2 Jul 2026 04:07:59 +0300 Subject: [PATCH] refactor(audio): move shared audio hooks to shared/lib/audio (FTD-44) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move useAudioCapture, useAudioPlayback, useAudioRecording (+ test) from features/t2-live/hooks/ to shared/lib/audio/. Update imports in useT2LiveSession.ts and useT1LiveSession.ts, remove TODO(FTD-44) markers. No functional change ("Voie A" audio pipeline intact). Dérogation Règle B assumée pour useAudioRecording (4 fichiers/vague au lieu de 3) : hook et test déplacés ensemble pour préserver le chemin d'import relatif (../useAudioRecording), condition nécessaire au respect de Règle C (jamais rouge entre étapes). Validated manually: T2 Live D2-D5, T1 Live full flow (private browsing). 301/301 tests, 0 typecheck errors. --- src/features/t1-live/hooks/useT1LiveSession.ts | 9 +++------ src/features/t2-live/hooks/useT2LiveSession.ts | 6 +++--- .../lib/audio}/__tests__/useAudioRecording.test.ts | 0 .../hooks => shared/lib/audio}/useAudioCapture.ts | 0 .../hooks => shared/lib/audio}/useAudioPlayback.ts | 0 .../hooks => shared/lib/audio}/useAudioRecording.ts | 0 6 files changed, 6 insertions(+), 9 deletions(-) rename src/{features/t2-live/hooks => shared/lib/audio}/__tests__/useAudioRecording.test.ts (100%) rename src/{features/t2-live/hooks => shared/lib/audio}/useAudioCapture.ts (100%) rename src/{features/t2-live/hooks => shared/lib/audio}/useAudioPlayback.ts (100%) rename src/{features/t2-live/hooks => shared/lib/audio}/useAudioRecording.ts (100%) diff --git a/src/features/t1-live/hooks/useT1LiveSession.ts b/src/features/t1-live/hooks/useT1LiveSession.ts index e8cd7ec..251cb01 100644 --- a/src/features/t1-live/hooks/useT1LiveSession.ts +++ b/src/features/t1-live/hooks/useT1LiveSession.ts @@ -29,12 +29,9 @@ import { useCallback, useEffect, useRef, useState, type RefObject } from 'react' import { useNavigate } from 'react-router-dom' import { env } from '@/shared/config/env' import { getAccessToken } from '@/shared/lib/auth-client' -// TODO(FTD-44): hooks audio génériques empruntés à features/t2-live/ (violation -// FSD inter-features assumée et tracée). À relocaliser vers shared/lib/audio/ -// au Sprint 7.5 (« factorisation Sprint 7 »). Cf. TECH_DEBT.md §3bis. -import { useAudioCapture } from '@/features/t2-live/hooks/useAudioCapture' -import { useAudioPlayback } from '@/features/t2-live/hooks/useAudioPlayback' -import { useAudioRecording } from '@/features/t2-live/hooks/useAudioRecording' +import { useAudioCapture } from '@/shared/lib/audio/useAudioCapture' +import { useAudioPlayback } from '@/shared/lib/audio/useAudioPlayback' +import { useAudioRecording } from '@/shared/lib/audio/useAudioRecording' import { transition, T1_INITIAL_STATE, type T1State, type T1Event } from '../state/t1-machine' const DIALOGUE_TIMEOUT_MS = 180_000 // 3 min diff --git a/src/features/t2-live/hooks/useT2LiveSession.ts b/src/features/t2-live/hooks/useT2LiveSession.ts index 45f5bd3..e725ab2 100644 --- a/src/features/t2-live/hooks/useT2LiveSession.ts +++ b/src/features/t2-live/hooks/useT2LiveSession.ts @@ -22,9 +22,9 @@ import { useCallback, useEffect, useRef, useState, type RefObject } from 'react' import { useNavigate } from 'react-router-dom' import { env } from '@/shared/config/env' import { getAccessToken } from '@/shared/lib/auth-client' -import { useAudioCapture } from './useAudioCapture' -import { useAudioPlayback } from './useAudioPlayback' -import { useAudioRecording } from './useAudioRecording' +import { useAudioCapture } from '@/shared/lib/audio/useAudioCapture' +import { useAudioPlayback } from '@/shared/lib/audio/useAudioPlayback' +import { useAudioRecording } from '@/shared/lib/audio/useAudioRecording' import { transition, T2_INITIAL_STATE, type T2State, type T2Event } from '../state/t2-machine' const DIALOGUE_TIMEOUT_MS = 210_000 // 3 min 30 diff --git a/src/features/t2-live/hooks/__tests__/useAudioRecording.test.ts b/src/shared/lib/audio/__tests__/useAudioRecording.test.ts similarity index 100% rename from src/features/t2-live/hooks/__tests__/useAudioRecording.test.ts rename to src/shared/lib/audio/__tests__/useAudioRecording.test.ts diff --git a/src/features/t2-live/hooks/useAudioCapture.ts b/src/shared/lib/audio/useAudioCapture.ts similarity index 100% rename from src/features/t2-live/hooks/useAudioCapture.ts rename to src/shared/lib/audio/useAudioCapture.ts diff --git a/src/features/t2-live/hooks/useAudioPlayback.ts b/src/shared/lib/audio/useAudioPlayback.ts similarity index 100% rename from src/features/t2-live/hooks/useAudioPlayback.ts rename to src/shared/lib/audio/useAudioPlayback.ts diff --git a/src/features/t2-live/hooks/useAudioRecording.ts b/src/shared/lib/audio/useAudioRecording.ts similarity index 100% rename from src/features/t2-live/hooks/useAudioRecording.ts rename to src/shared/lib/audio/useAudioRecording.ts