feat(0130-FaceLandmarkerSidecar): 3.12 Face Landmarker → 0124 assist pipe - #132
Merged
Merged
Conversation
Optional scripts/face-landmarker runner (mediapipe 1.0.1) dumps assist_pixel_capture for capture --prefer-merge. Frozen map JSON in meshops 3.13; preserve method=pose_model through capture and Landmark2D. MCP stay 53; no remake.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 31dbd80. Configure here.
| if n <= 0: | ||
| return _write_skip(out, "no_face", n_faces=0) | ||
| if n >= 2: | ||
| return _write_skip(out, "multi_face", n_faces=n, multi_figure=True) |
There was a problem hiding this comment.
Multi-face skip never triggers
Medium Severity
num_faces=1 is MediaPipe’s maximum faces to return, not an exact-one requirement. With that cap the detector never yields 2+ faces, so the multi_face skip is dead and a multi-face image silently gets one chosen face—against the stated §1 rule not to pick a primary.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 31dbd80. Configure here.
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
scripts/face-landmarker/(mediapipe==1.0.1) maps 478 → 0124 form-read ids and dumpsassist_pixel_capturefor existingmeshops proportion capture --source px --merge --prefer-merge.src/meshops/proportion/face_landmarker_map.json(+ 3.13 loader). MeshOps never imports mediapipe.method=pose_modelthrough Landmark2D.run.ps1skip-ok when 3.12 missing.Honesty
face_landmarker_sidecar_not_mesh_or_print_success— detector pixels ≠ mesh/print success (Difficulty §12).Test plan
ledgerful verify(ruff / format / basedpyright / pytest)tests/test_proportion_face_landmarker.pyT0–T10Note
Medium Risk
Touches proportion capture/assist serialization and adds an isolated detector path that can fill landmarks; core 3.13 runtime and MCP stay unchanged, but merge/method handling is business-logic.
Overview
Adds an optional Python 3.12 sidecar that maps MediaPipe Face Landmarker (478 points) onto existing 0124 form-read ids and writes
assist_pixel_captureJSON formeshops proportion capture --source px. MeshOps stays on 3.13 and never imports mediapipe; operators runrun.ps1/run.pythen merge with--prefer-merge.The frozen map lives in
face_landmarker_map.json(packaged with the wheel) plus a 3.13 loader that maps indices, drops Z, skipscranial_vertex, and treats 0/2+ faces as skip. Capture/assist now round-tripmethod(e.g.pose_model) on landmark dicts. Sidecar missing 3.12/model/face is skip-ok (exit 2). MCP catalog stays at 53 tools.Reviewed by Cursor Bugbot for commit 31dbd80. Bugbot is set up for automated code reviews on this repo. Configure here.