cog
871b8c41 - fix: route List[Path] outputs through FileOutput IPC for upload (#2779)

Commit
10 days ago
fix: route List[Path] outputs through FileOutput IPC for upload (#2779) * fix: route List[Path] outputs through FileOutput IPC for upload When a predict function returns List[Path] (not an iterator), the list was being processed by output::process_output which base64-encodes Path objects inline. This caused multi-megabyte data URIs in the response instead of uploaded URLs. Now process_single_output detects list/tuple returns and iterates their items through send_output_item, which routes Path objects through the FileOutput IPC path for proper upload. Adds coglet_list_path_upload_url integration test to verify List[Path] outputs are uploaded via --upload-url and not base64-encoded. * fix: use schema Output type to preserve array shape for single-element List[Path] Single-element List[Path] returns were collapsed to a scalar string instead of a one-element array, breaking the API contract. The orchestrator now checks the schema's Output type ("type": "array") to decide Single vs Stream wrapping. For Any/missing schemas, a predictor-side is_stream flag on the Done message serves as fallback. - Add wrap_outputs() helper with schema + predictor signal priority - Propagate is_stream through PredictionOutcome -> worker -> Done IPC - 13 unit tests covering all wrapping combinations + serde round-trip - Integration tests for List[Path] single-element and scalar Path output * fix: rustfmt formatting in tests
Author
Parents
Loading