Skip to content

v0.3.2

@nshkrdotcom nshkrdotcom tagged this 15 Dec 05:25
Breaking Changes:

  Tinkex.Config now requires api_key to start with the 'tml-' prefix,
  matching Python SDK behavior. Existing API keys without this prefix
  will raise ArgumentError during config validation.

New Features:

  Client-side validation for loss_fn and loss_fn_config parameters in
  TrainingClient.forward/4 and TrainingClient.forward_backward/4:

  - Validates loss_fn against LossFnType.values/0 before sending request
  - Validates loss_fn_config is a map with string/atom keys and numeric
    values (integers, floats, or parseable strings)
  - Normalizes loss_fn_config keys to strings and values to floats
  - Returns user-category validation errors with allowed values in data

  Added LossFnType.values/0 returning all valid loss function atoms:
  [:cross_entropy, :importance_sampling, :ppo, :cispo, :dro]

Bug Fixes:

  checkpoint_multi_delete_live.exs now computes await timeout dynamically
  based on config timeout and max_retries, preventing premature Task
  timeouts during checkpoint saves with retries.

Documentation:

  - All guides and examples updated to use tml- prefixed API keys
  - CLI help text updated to reference Qwen/Qwen3-8B model
  - Added Python SDK parity analysis document for commits e7a0d0c and
    2d8e9d5 in docs/20251214/python-sdk-parity/

Test Coverage:

  - Added test for api_key prefix validation error
  - Added tests for loss_fn validation (forward and forward_backward)
  - Added tests for loss_fn_config validation and normalization
  - Added test for LossFnType.values/0
  - Updated all test fixtures to use tml- prefixed API keys

Python SDK Parity:

  Ports validation behavior from Python SDK commits e7a0d0c and 2d8e9d5
  (Dec 15, 2025). The tml- prefix requirement aligns with Thinking
  Machines Lab authentication standards.
Assets 2
Loading