- Wire resolve_artifact_handles/store_if_artifact into
agent_utils.execute_single_native_tool_call, the native tool path used
by StepExecutor (Plan-and-Execute mode); previously a FileArtifact
produced or consumed there bypassed the bypass and leaked raw bytes.
- Fold the crew/agent.crew fallback into artifact_scope_id(crew, task,
agent) so all four execution paths derive the cleanup scope identically
instead of repeating 'self.crew or getattr(self.agent, ...)'.
- Sanitize ']' and newlines (not just quotes) in the placeholder so an
odd filename can't break the bracketed attribute line; extend
_human_size with TB/PB.