Repository navigation
feat: transfers through tracel-artifact, concurrent and with byte progress - #43
Merged
Marc-AnthonyG merged 3 commits intoOct 14, 2026
Merged
Conversation
This was referenced Oct 14, 2026
jwric
marked this pull request as ready for review
October 14, 2026 21:24
jwric
force-pushed
the
feat/artifact-transfers
branch
from
October 14, 2026 21:26
1546ef4 to
b5267e0
Compare
…e progress - `models push`, `models pull`, `artifacts download` and the code versions `package` uploads move their bytes with the SDK's tracel-artifact instead of the client. - Uploads send up to eight parts at once, streamed from disk instead of read into memory, and a code version's binaries upload together. - Downloads fetch a large file in several ranges at once, into a temporary directory beside the destination. Each file's size and checksum are checked before any of them moves in, so a failed download leaves the destination as it was. - On a terminal, a transfer shows the bytes moved, the rate and the time left.
The Console answers a download with EXPERIMENT, EXPERIMENT_ARTIFACT or OBJECT_STORAGE_FILE, which the client now knows. `artifacts download` says which was missing instead of "No experiment N" for all three, and any download whose stored files are gone says so of what it asked for.
tracel-client 0.22.0 is the first release without the presigned URL transfers this branch replaces. tracel-job and tracel-artifact are not released yet, so they stay pinned to the head of the SDK pull request that adds the concurrent uploads.
jwric
force-pushed
the
feat/artifact-transfers
branch
from
October 14, 2026 22:02
b5267e0 to
23321f8
Compare
Marc-AnthonyG
approved these changes
Oct 14, 2026
Marc-AnthonyG
pushed a commit
that referenced
this pull request
Oct 14, 2026
…gress (#43) * feat: transfers go through tracel-artifact, concurrently and with byte progress - `models push`, `models pull`, `artifacts download` and the code versions `package` uploads move their bytes with the SDK's tracel-artifact instead of the client. - Uploads send up to eight parts at once, streamed from disk instead of read into memory, and a code version's binaries upload together. - Downloads fetch a large file in several ranges at once, into a temporary directory beside the destination. Each file's size and checksum are checked before any of them moves in, so a failed download leaves the destination as it was. - On a terminal, a transfer shows the bytes moved, the rate and the time left. * fix: a missing artifact or stored file is named as such The Console answers a download with EXPERIMENT, EXPERIMENT_ARTIFACT or OBJECT_STORAGE_FILE, which the client now knows. `artifacts download` says which was missing instead of "No experiment N" for all three, and any download whose stored files are gone says so of what it asked for. * chore: depend on tracel-client 0.22.0 and the SDK's transfer branch tracel-client 0.22.0 is the first release without the presigned URL transfers this branch replaces. tracel-job and tracel-artifact are not released yet, so they stay pinned to the head of the SDK pull request that adds the concurrent uploads. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ex4o1LntLPL1RrM35YpRjE
Marc-AnthonyG
pushed a commit
that referenced
this pull request
Oct 14, 2026
…gress (#43) * feat: transfers go through tracel-artifact, concurrently and with byte progress - `models push`, `models pull`, `artifacts download` and the code versions `package` uploads move their bytes with the SDK's tracel-artifact instead of the client. - Uploads send up to eight parts at once, streamed from disk instead of read into memory, and a code version's binaries upload together. - Downloads fetch a large file in several ranges at once, into a temporary directory beside the destination. Each file's size and checksum are checked before any of them moves in, so a failed download leaves the destination as it was. - On a terminal, a transfer shows the bytes moved, the rate and the time left. * fix: a missing artifact or stored file is named as such The Console answers a download with EXPERIMENT, EXPERIMENT_ARTIFACT or OBJECT_STORAGE_FILE, which the client now knows. `artifacts download` says which was missing instead of "No experiment N" for all three, and any download whose stored files are gone says so of what it asked for. * chore: depend on tracel-client 0.22.0 and the SDK's transfer branch tracel-client 0.22.0 is the first release without the presigned URL transfers this branch replaces. tracel-job and tracel-artifact are not released yet, so they stay pinned to the head of the SDK pull request that adds the concurrent uploads.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Every transfer to or from a presigned URL goes through the SDK's
tracel-artifact, concurrently and with byte progress. Stacked on #41.models pushand the code versionspackageuploads send up to eight parts or files at once, streamed from disk instead of read into memory. A code version's binaries for several targets upload together.models pullandartifacts downloadfetch a large file in several ranges at once, into a temporary directory beside the destination. Each file's size and checksum are checked before any of them moves in, so a failed download leaves the destination as it was. Paths and existing files are still checked first, and--forcestill overwrites.artifacts downloadsays whether the experiment, the artifact, or its stored files are missing. It used to say "No experiment N" for all three. Any download whose stored files are gone from the Console's storage now says so of what it asked for.Builds against tracel-ai/tracel#203, the concurrent uploads, and tracel-ai/tracel-client#57, which drops the client's URL transfers and adds the not-found codes. Both are pinned by git revision for review.