Skip to content

feat: experiment reads and model management - #54

Merged
jwric merged 3 commits into
mainfrom
feat/cli-read-api
Oct 14, 2026
Merged

jwric merged 3 commits into
mainfrom
feat/cli-read-api

Conversation

@jwric

@jwric jwric commented Oct 7, 2026

Copy link
Copy Markdown
Member

Experiment reads and model management for the tracel CLI.

  • Experiment reads mirroring the server's handlers: list, get, latest, metric series, metadata and summary, activities, and the log query with its live-tail cursor.
  • Model wrappers: promote an experiment artifact to a version, list, set and remove aliases, replace version metadata, delete a version, and list versions in every state. Client::download_from_url streams a presigned URL into a writer.
  • Model, artifact, dataset, project and experiment responses derive Serialize; model and project responses gain the fields the server sends.
  • The request bodies the client builds are private.

tracel-ai/tracel-cli#40 builds against this branch.

@@ -0,0 +1,11 @@
use std::collections::HashMap;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why body module instead of request?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

body.rs holds the private serde schemas for request bodies, this is preexisting.

@jwric
jwric force-pushed the feat/cli-read-api branch from 1f0095d to 6742a87 Compare October 14, 2026 20:51
jwric added 3 commits October 14, 2026 16:59
- Experiment reads mirroring the server's handlers: list, get, latest,
  metric series, metric metadata, metric summary, activities, and the
  log query with its live-tail cursor. Responses also derive Serialize.
- Model wrappers mirroring the server's handlers: promote an experiment
  artifact to a version, list, set and remove aliases (with an optional
  expected current version), replace version metadata, delete a version,
  and list versions in every state.
- `Client::download_from_url` streams a presigned URL into a writer,
  the counterpart of `upload_bytes_to_url`.
- Model, artifact, dataset and project responses also derive Serialize.
  Model and project responses gain the fields the server sends
  (`display_name`, `aliases`, `profile_picture_url`, `created_at`),
  defaulted when absent.
- The bodies the client builds from method arguments (experiment
  creation, artifact file additions and completion, project creation,
  and the job queue request) move to private `body` modules as plain
  `pub` structs instead of `pub(crate)` ones in public modules.
- The `console::job::request` module, which held only such a body, goes
  away.
@jwric
jwric force-pushed the feat/cli-read-api branch from 6742a87 to dddeb82 Compare October 14, 2026 20:59
@jwric
jwric merged commit 5a61877 into main Oct 14, 2026
1 check passed
@jwric
jwric deleted the feat/cli-read-api branch October 14, 2026 21:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants