Skip to content

Profine

v0.5.1 Bugfix

This release fixes issues for SREs watching stability and regressions.

Published 16d Model Serving & MLOps
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

ai-agents automated-optimization benchmark cli machine-learning gpu
+12 more
gpu-profiling llm-agents mingpt mixed-precision mlops modal model-training performance-optimization profiling python pytorch torch-compile

Summary

AI summary

Fixed telemetry bugs: _loss_ok_from_bench reading a non-existent key and _gather_outcomes never setting runtime_seconds, both causing NULL columns.

Changes in this release

Bugfix Medium

_loss_ok_from_bench incorrectly read non-existent key correctness.verdict.

_loss_ok_from_bench incorrectly read non-existent key correctness.verdict.

Source: granite4.1:8b-q6_K@2026-05-19

Confidence: high

Bugfix Medium

_gather_outcomes now sets runtime_seconds field in outcome dicts.

_gather_outcomes now sets runtime_seconds field in outcome dicts.

Source: granite4.1:8b-q6_K@2026-05-19

Confidence: high

Bugfix Medium

Regression test added for loss_ok reading correctness.passed instead of verdict.

Regression test added for loss_ok reading correctness.passed instead of verdict.

Source: granite4.1:8b-q6_K@2026-05-19

Confidence: low

Full changelog

Telemetry bugfix release. Two NULL columns the priors flywheel needed were never being emitted; the materialized view's success_rate column has been NULL for every user since telemetry shipped, silently breaking the suggester's failure-avoidance filter.

pip install -U profine

Fixed

  • _loss_ok_from_bench was reading a non-existent key. The function read correctness.verdict from benchmark_comparison.json, but the correctness sub-dict has a passed (bool) key, not a verdict. (verdict is a top-level BenchmarkComparison field.) The bug emitted loss_ok=None for every run sent to the telemetry backend. The test fixture was buggy in the same way as the production code (it also used the verdict key), explaining the silent regression. Adds a focused regression test (test_loss_ok_reads_correctness_passed_not_verdict) that pins both the real and old-buggy shapes.
  • _gather_outcomes never set runtime_seconds. The field is in ALLOWED_OUTCOME_FIELDS but was missing from every emit-row dict literal, so run_optimizations.runtime_seconds was NULL across the entire dataset. The primary outcome now carries the profile's wall-clock runtime; stacked/skipped rows still omit it (no per-entry attribution available — same convention as speedup_factor).

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Profine

Get notified when new releases ship.

Sign up free

About Profine

All releases →

Related context

Earlier breaking changes

  • v0.5.0 `--hardware` is now required on profile, benchmark, and run-all commands.

Beta — feedback welcome: [email protected]