Skip to content

chore: promote develop to master (yolo mps ultralytics fallback fix) - #212

Merged
solderzzc merged 2 commits into
masterfrom
develop
Sep 17, 2026
Merged

solderzzc merged 2 commits into
masterfrom
develop

Conversation

@solderzzc

Copy link
Copy Markdown
Member

Summary

Promotes develop to master. The relevant change for this PR is #210 (already merged into develop), which needs to reach master because the Aegis-AI app's skill installer clones the yolo-detection-2026 skill from master at install/reinstall time (skill-registry-service.cjs) — develop isn't in that path, so #210 alone didn't reach any installed skill.

  • load_optimized()'s final fallback branch (taken when the optimized runtime check fails, framework_ok=False) unconditionally imported ultralytics — but mps installs deliberately never ship torch/ultralytics (requirements_mps.txt only lists onnxruntime).
  • Any mps machine where _check_mps_runtime() fails (CoreML execution provider not found) crashed with No module named 'ultralytics' when loading a YOLO skill, instead of falling back to the pre-built .onnx model via plain CPUExecutionProvider.
  • Reported in SharpAI/DeepCamera#207.

Locally dry-ran this merge (git merge origin/develop onto master, no --no-ff conflicts) — clean, no conflicts; the diff is exactly the #210 fix (104 lines across 2 env_config.py copies + 1 new test file), nothing else from develop leaks in unexpectedly since develop's only commits ahead of master are the #210 fix itself.

Test plan

  • skills/lib/test_env_config_mps_fallback.py (3 tests) re-verified against current master post-merge — passes.
  • Full skills/lib/test_env_config_*.py suite — 4 pre-existing failures in test_env_config_ane.py reproduce identically on master without this change (confirmed by temporarily reverting just the two env_config.py files to master's version and re-running) — not introduced by this change.
  • Not yet verified against Brian's actual machine — this PR unblocks him reinstalling the yolo-detection-2026 skill from the Aegis-AI Skills sidebar to pick it up.

🤖 Generated with Claude Code

solderzzc and others added 2 commits September 16, 2026 15:15
…s False

load_optimized()'s final fallback branch (taken when the optimized
runtime check fails) unconditionally imported ultralytics. mps installs
deliberately ship without torch/ultralytics (requirements_mps.txt: only
onnxruntime is needed), so any mps machine where the CoreML EP check
fails crashed with "No module named 'ultralytics'" instead of falling
back to the pre-built ONNX model via plain CPUExecutionProvider.

Now mps uses _load_onnx_coreml() (already used elsewhere in this same
function) in that branch instead, matching the file's own stated intent.

Addresses one of the symptoms in #207.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
fix(yolo-skill): don't require ultralytics on mps when framework_ok is False
@solderzzc
solderzzc merged commit 933dcc7 into master Sep 17, 2026
1 check 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.

1 participant