Skip to content

Fix open issues #205–#212 - #213

Merged
gbradham merged 12 commits into
mainfrom
claude/open-issues-40c1c8
Oct 24, 2026
Merged

gbradham merged 12 commits into
mainfrom
claude/open-issues-40c1c8

Conversation

@gbradham

Copy link
Copy Markdown
Member

Fixes all eight open issues, one commit per issue (four for #212).

Closes #205
Closes #206
Closes #207
Closes #208
Closes #209
Closes #210
Closes #211
Closes #212

Changes

  • Maimu Plugin Install Concurrency #205 Plugin nodes need a restart: the node library listed plugin nodes only once, when it was built. The Plugins window now emits plugins_changed after an install, enable or reload, and the main window rebuilds the library on it.
  • Package installs in app #206 Package installs in app: unavailable Analyze cards get an Install button. It installs the requirements GLIDER's own metadata lists for the extra (installer.extra_requirements), not glider[extra], which would resolve the unrelated glider project on PyPI. Then it offers a restart, because the availability probes are memoized. The relaunch runs at interpreter exit, so serial ports are released first. Frozen builds get no button.
  • Rename "mice" to "animals" #207 Mice → Animals: renamed the section, its key, its icon file and the placeholder text.
  • Remove "Files" tab on desktop #208 Files tab: removed from the desktop Builder; the runner's Files tab is unchanged.
  • Leftover behavioral prediction cleanup #209 Live behaviour labels: removed BehaviorAnalyzer, its overlay, its settings and the behavioral_state column from new tracking CSVs. velocity_px_frame is kept, now computed as the mean step length over the trail. Analysis already treats behavioral_state as optional, so old recordings still load.
  • Shortcut menu fix #210 Ctrl+K on Mac: palette shortcuts and the status-strip hint render as native text (⌘K on macOS).
  • Batch Pose above Behavior Analysis #211 Order: Batch Pose Tracking is listed above Behavior Analysis, in both the Analyze tab and the Tools menu.
  • Arena calibration #212 Arena replaces calibration:
    • Round arenas: ArenaCalibration gains shape="ellipse". An ellipse is the affine image of a circle, so the existing homography is reused: the corners are the ellipse's bounding parallelogram. Only containment (outside_cm, used by the arena gate) and the centre zone know the arena is round.
    • Dialog: a Rectangle/Circle choice and separate width and height. A circle is drawn as a centre plus two edge points. Reopening an arena no longer loses its height.
    • Arena is the scale everywhere:
      • Batch Pose drops Calibrate… and Copy to Selected.
      • Camera Settings now has Arena… instead of Open Calibration… (desktop and Pi). The live arena is saved in QSettings.
      • Pup-retrieval Set scale… uses the arena dialog.
    • Tracking logger: ArenaCalibration provides the scalar interface the logger reads, so the CSV headers and distance_mm are unchanged.
    • Scale readers: _borrow_from_folder_mate and calibration_spread_warning now also read arenas.
    • Removed code: the line-drawing CalibrationDialog is deleted. CameraCalibration stays, so old master files still load.
    • Known limits: a circle is fitted as an ellipse, without full perspective correction, and the misplaced-corner warning only applies to rectangles.

Docs are updated for the Builder window, tracking, the camera arena section and pup retrieval.

Testing

…overlay (#209)

Velocity stays: it is mean step length over the trail, and the analysis
side reads velocity_px_frame. The behavioral_state column is gone from new
tracking CSVs; readers already treat it as optional, so old files still load.
…load (#205)

refresh_plugin_nodes() ran once, when the panel was built, so a node a
freshly installed plugin registered stayed off the list until a restart.
The card's Install button installs the requirements GLIDER's own metadata
lists for the extra (not glider[extra] from PyPI, a different project), then
offers a restart, since the availability probes and tool stacks load once.
…ight (#212)

An ellipse is the affine image of a circle, so a round arena reuses the
homography: its corners are the ellipse's bounding parallelogram, and only
containment (the gate) and the centre zone know it is round. The dialog
gains a Rectangle/Circle choice and separate width and height; reopening an
arena now keeps its height.
…p retrieval (#212)

Camera Settings > Arena… outlines the live camera's floor and is remembered
between sessions; ArenaCalibration carries the scalar interface the tracking
logger read off a line calibration, so the CSV headers and distance_mm are
unchanged. Set scale… in pup retrieval opens the same dialog. Scale borrowing
and the spread check now see arena-only calibration files. The line-drawing
dialog is gone; CameraCalibration stays so old master files still load.
@gbradham
gbradham merged commit 4673a4d into main Oct 24, 2026
4 checks passed
@gbradham
gbradham deleted the claude/open-issues-40c1c8 branch October 24, 2026 20:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant