Skip to content

Close the skipped minors; list-metrics and guide for native 3-D files - #162

Merged
mbel-tech merged 15 commits into
mainfrom
fatina-del-codice/beautiful-hypatia-wlxfol
Oct 11, 2026
Merged

mbel-tech merged 15 commits into
mainfrom
fatina-del-codice/beautiful-hypatia-wlxfol

Conversation

@mbel-tech

@mbel-tech mbel-tech commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

What and why

Closes the minor findings that the earlier deferred-minors work deliberately skipped, plus a few small parked ones, and finishes two follow-ups. Plan: docs/superpowers/plans/2026-10-11-skipped-minors.md.

Exported numbers that change (all listed in CHANGELOG.md ### Fixed):

  • GL-1 / GL-16 skipped-frame counts: the NaN separator row between tracking intervals is "not a frame" but was counted as a skipped frame. It no longer is (only sessions with unfilled gaps; means and medians unchanged).
  • GL-16 mean_nnd_3d_bl follows GL-1's body-length rule (identical for positive or NaN lengths; zero, negative and +inf lengths now behave as in GL-1).
  • IL-17 in binned runs: the vertical speed is computed once on the whole session and sliced with it (from the water-column-bounded z that main now uses); unbinned IL-17 is unchanged.

Robustness / wording (no number changes): HEADER_TOO_LONG on an over-long header; duplicate-column scan warnings and an Anipose refusal; CLI log rewrite as a logging.Formatter wrapper; clearer NATIVE_3D_MIXED text.

Added after the first draft:

  • t2d list-metrics now lists what a native 3-D project rules out (IL-3, IL-9, IL-10, IL-14, IL-15 until the water column is given, every group metric), built from availability.unavailable_reason so the wording matches the Metrics screen.
  • Guide: two native 3-D screenshots (Anipose confirm step, Calibration with the Water column group), all other screenshots and the PDF regenerated, figures renumbered.
  • Calibration screen: native 3-D sessions were shown as "calibrated (1 px per unit)" and the note asked for a "Scale (pixels per cm)" option that native readers do not have. They now read "in cm (converted when read)" with a note that native files are already in physical units (found by looking at the new screenshot).
  • Merged origin/main (SP5/SP6). Conflicts were in the metrics code, where main's vertical_cm (water-column-bounded z) replaces my z_cm helper, and in GL-16 (main's frac_frames_used_3d kept, GL-1 body-length rule applied).

Not included, on purpose: the Anipose real-sample contract case (fixture host unreachable) and rewriting commit trailers (needs a force-push of merged history).

Test plan

  • Tests written first for each task; per-task reviews and a final whole-branch review on the pre-merge head.
  • After the merge: full suite 4555 passed, 213 skipped (QT_QPA_PLATFORM=offscreen pytest -q -W error::RuntimeWarning); ruff check . and CI-config mypy clean; scripts/check_wiki.py clean.

Checklist

  • Tests added or updated
  • ruff check . passes
  • Docs updated (docs/METRICS_SPEC.md, user guide, PDF, screenshots)
  • CHANGELOG.md entries under [Unreleased]

Known leftover (wording only): when a native file is added to a legacy manifest whose existing entries have no recorded reader, those entries are described as "not a native 3-D file" instead of "pixel-tracked".

🤖 Generated with Claude Code

https://claude.ai/code/session_01QXpnhJcJvaj5BxqfESMHNp

claude added 11 commits October 11, 2026 11:51
…robustness)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QXpnhJcJvaj5BxqfESMHNp
…16 body length follows GL-1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QXpnhJcJvaj5BxqfESMHNp
…in cm like before

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QXpnhJcJvaj5BxqfESMHNp
…-NaN lengths

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QXpnhJcJvaj5BxqfESMHNp
PreprocessedSession.z_speed holds the whole-session vertical speed; the Engine
computes it once (geometry3d.vertical_speed) before windows are cut, slice_psess
slices it, and Speed3D reads it, falling back to its own estimate for direct
compute() calls. Unbinned IL-17 is unchanged; bin-edge values now match the
whole-session estimate.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QXpnhJcJvaj5BxqfESMHNp
…inned parallel native run

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QXpnhJcJvaj5BxqfESMHNp
…essages; CLI formatter without private access

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QXpnhJcJvaj5BxqfESMHNp
…elog and wording follow-ups

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QXpnhJcJvaj5BxqfESMHNp
…ation screen no longer calls native files pixel-scaled

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QXpnhJcJvaj5BxqfESMHNp
@mbel-tech mbel-tech changed the title Close the skipped minors: group skip counts, IL-17 bin edges, native reader and CLI robustness Close the skipped minors; list-metrics and guide for native 3-D files Oct 11, 2026
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012btUjvTQTf6i51Rpr3t8Hc
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QXpnhJcJvaj5BxqfESMHNp
…differences

The CI's Python 3.11 build differs from 3.12 by 1 ulp (about 1e-15 relative) in the savgol and
nanmean results these two tests compared with ==.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QXpnhJcJvaj5BxqfESMHNp
@mbel-tech
mbel-tech marked this pull request as ready for review October 11, 2026 18:12
@mbel-tech
mbel-tech merged commit f35d66e into main Oct 11, 2026
7 checks passed
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