release: v0.10.1 — graceful per-frame zoom skip - #11
Merged
Conversation
When a single OpenAI vision call times out (e.g. frame_0005.png hits the 30s ceiling three retries in a row), the previous behaviour was to abort the entire smart-zoom analysis and fail the render. With the Catmull-Rom smoothing added in reeln-cli 0.0.40, the renderer interpolates across a missing keyframe with no visible discontinuity, so dropping one frame out of eighteen costs almost nothing. This release switches _analyze_frames_for_zoom to: - Catch OpenAIError per frame, log the skip, continue - Track success count + ratio - Raise only when success rate < min_zoom_points_success_ratio (0.5) OR fewer than min_zoom_points (2) frames succeeded total Both thresholds are configurable so users who want the strict pre-0.10.1 behaviour can set ratio=1.0. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
A single OpenAI vision-call timeout on one frame previously aborted the entire smart-zoom analysis and failed the render. User reported this twice in a row (
frame_0005.pngtimed out 3 retries in 30s each), losing both attempts at a render.With the Catmull-Rom smoothing added in reeln-cli#30 (v0.0.40), the renderer interpolates across a missing keyframe with no visible discontinuity. Dropping one of eighteen frames is now a no-op.
Changes
_analyze_frames_for_zoomcatchesOpenAIErrorper frame, logs the skip, and continues with the remaining frames.min_zoom_points_success_ratio(default0.5) — minimum fraction of frames that must succeed.min_zoom_points(default2) — absolute minimum number of successful keypoints.errorsignal incontext.shared["smart_zoom"]) is only raised when both thresholds aren't met.min_zoom_points_success_ratio: 1.0.Why these defaults
The renderer's spline needs at least 2 points to interpolate. 50% is a sensible floor — below that the path no longer reliably tracks the action. For typical zoom_frames=18 usage, that means up to 9 frames could fail and the render still completes; in practice timeouts hit ~1 frame, so the user gains a huge resilience improvement at zero correctness cost.
Test plan
uv run pytest -q— 293 tests pass (4 new)test_one_frame_failure_continues_analysis— exact regression: 18 frames, one fails → 17 keypoints in path, no errortest_failure_below_ratio_threshold_raises— 1/4 success → errortest_ratio_threshold_configurable—ratio=1.0restores strict modetest_all_frames_failing_signals_error— full failure still surfaces🤖 Generated with Claude Code