fix: preserve user_metadata in ingest_existing_file instead of dropping it

Pass user_metadata through spec['metadata'] to batch_insert_seed_assets.
Update batch_insert_seed_assets to accept raw dicts (UserMetadata) in
addition to ExtractedMetadata, passing them through as-is without
calling .to_user_metadata().

Amp-Thread-ID: https://ampcode.com/threads/T-019cfbe3-6440-724b-a17b-66ce09ecd1ed
Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
Luke Mino-Altherr 2026-03-17 09:04:28 -04:00
parent 83a3d637e3
commit 8973162def
2 changed files with 6 additions and 4 deletions

View File

@ -34,7 +34,7 @@ class SeedAssetSpec(TypedDict):
info_name: str
tags: list[str]
fname: str
metadata: ExtractedMetadata | None
metadata: ExtractedMetadata | dict[str, Any] | None
hash: str | None
mime_type: str | None
job_id: str | None
@ -152,8 +152,10 @@ def batch_insert_seed_assets(
# Build user_metadata from extracted metadata or fallback to filename
extracted_metadata = spec.get("metadata")
if extracted_metadata:
user_metadata: dict[str, Any] | None = extracted_metadata.to_user_metadata()
if isinstance(extracted_metadata, dict):
user_metadata: dict[str, Any] | None = extracted_metadata
elif extracted_metadata:
user_metadata = extracted_metadata.to_user_metadata()
elif spec["fname"]:
user_metadata = {"filename": spec["fname"]}
else:

View File

@ -177,7 +177,7 @@ def ingest_existing_file(
"info_name": name,
"tags": tags,
"fname": os.path.basename(abs_path),
"metadata": None,
"metadata": user_metadata,
"hash": None,
"mime_type": mime_type,
"job_id": job_id,