## Phase 2 Complete: Exponer entradas internas en el escáner TL;DR: `scanDirectory` ahora lista entradas internas de contenedores ZIP/7z como items virtuales codificados usando `::`. Se añadieron tests unitarios que mockean `archiveReader.listArchiveEntries` y se introdujo un límite configurable `ARCHIVE_MAX_ENTRIES`. **Files created/changed:** - backend/src/services/fsScanner.ts - backend/tests/services/fsScanner.archiveEntries.spec.ts **Functions created/changed:** - `scanDirectory(dirPath)` — ahora, al detectar un archivo contenedor, invoca `listArchiveEntries(container)` y añade items virtuales con: - `path: "${containerPath}::${entryPath}"` - `containerPath`, `entryPath`, `filename`, `size`, `format`, `isArchiveEntry: true` - Añadido `ARCHIVE_MAX_ENTRIES` (configurable via `process.env.ARCHIVE_MAX_ENTRIES`, default 1000). **Tests created/changed:** - `backend/tests/services/fsScanner.archiveEntries.spec.ts` — valida que `scanDirectory` incluya la entrada interna codificada y que los metadatos (`filename`, `format`, `containerPath`, `entryPath`, `isArchiveEntry`) sean correctos. **Review Status:** APPROVED **Git Commit Message:** feat: expose archive entries in fsScanner - Añade `scanDirectory` support para listar entradas internas de ZIP/7z - Añade test unitario que mockea `archiveReader.listArchiveEntries` - Añade límite configurable `ARCHIVE_MAX_ENTRIES` y comprobación básica de seguridad