33e919cc80
Previously, only the original uploaded file was deleted via knowledge.FilePath. Images extracted by the builtin parser (stored as individual S3/MinIO/local files via ImageResolver) were never cleaned up, causing orphan files to accumulate. - Add ListImageInfoByKnowledgeIDs repository method (no chunk_type filter) - Add collectImageURLs utility with URL deduplication and JSON parse logging - Add deleteExtractedImages helper (standalone, best-effort with error logging) - Fix DeleteKnowledge: collect image URLs before errgroup, delete in file goroutine - Fix DeleteKnowledgeList: bulk collect with KB-level fileSvc mapping - Fix cleanupKnowledgeResources: collect before chunk deletion, delete after - Fix ProcessKBDelete: collect before chunk deletion for KB-wide cleanup