An agent upload with no explicit tool_resource that resolves to the text path is
promoted to a context resource, but retention still received the original
undefined tool_resource, so in retention modes that expire conversation files
while keeping persistent agent resources these files were given an expiration
and swept.
Vector provisioning also derived its temp path from file_id alone, so two
concurrent requests for the same file shared one path and could unlink or
truncate it mid-stream, producing failed or corrupted embeddings.