Skip to content

Develop#182

Merged
solderzzc merged 31 commits intomasterfrom
develop
Mar 29, 2026
Merged

Develop#182
solderzzc merged 31 commits intomasterfrom
develop

Conversation

@solderzzc
Copy link
Copy Markdown
Member

No description provided.

solderzzc and others added 30 commits March 25, 2026 11:51
Breaking change: Docker is no longer the default deployment — native venv is.

detect.py:
- Replace pycoral + tflite-runtime with ai-edge-litert
- Use litert.Interpreter + load_delegate('libedgetpu') for Edge TPU
- Platform-aware delegate lib name (Linux/macOS/Windows)
- Unified output tensor parsing (removed separate pycoral path)
- Add 'runtime' field to ready event

requirements.txt:
- pycoral~=2.0 + tflite-runtime~=2.14 → ai-edge-litert>=2.1.0
- Python 3.9-3.13 supported (was 3.6-3.9)

deploy.sh:
- Docker build → native Python venv
- Auto-installs libedgetpu via apt on Debian/Ubuntu
- Install instructions for macOS and Windows
- Native run_command (no docker run)

deploy.bat:
- Docker → native Python venv for Windows

tpu_probe.py:
- list_edge_tpus() → load_delegate() availability test

SKILL.md:
- Version 1.0.0 → 2.0.0
- Removed runtime: docker
- Updated Platform Setup with libedgetpu install commands
- Docker noted as optional alternative

Dockerfile:
- Marked as optional, bullseye-slim → bookworm-slim
- pycoral → ai-edge-litert
…tion skills

- Remove Docker references from Coral TPU and OpenVINO table entries
- Update mermaid diagram to show all 3 detection skills as native
- Show Coral TPU using ai-edge-litert + libedgetpu delegate
- Show OpenVINO using OpenVINO SDK with NCS2/iGPU/CPU targets
- Replace 'docker build' with 'system packages' in LLM install step
The skill crashed with 'No Edge TPU model found' because deploy.sh
never downloaded a .tflite model. Now downloads SSD MobileNet V2
(Edge TPU compiled) from google-coral/test_data during deployment,
plus a CPU-only fallback variant.
Ships the model in-repo so the skill works immediately after
deployment without requiring an internet download step.
Force-added past .gitignore *.tflite rule.
The _edgetpu.tflite model uses custom Edge TPU ops that can't run
on CPU. When no Coral USB is connected, the fallback needs the
standard quantized model without edgetpu-custom-op.
…B passthrough

This reverts the deployment logic to the Docker-first approach
originally introduced in commit 9137400 to bypass sudo and
libedgetpu installation hurdles on macOS. The compiled tflite
models added in recent commits remain.
Aligns the yolo-detection-2026-coral-tpu skill architectural flow with CameraClaw by using a host-side `monitor.js` script rather than emitting a hardcoded `run_command` from `deploy.sh`. This fixes Docker invocation inconsistencies natively inside Aegis.

Also handles cross-platform volume mapping via `os.tmpdir()` which fixes Windows mapping issues.
…er deployments

- Drop all Docker architecture dependencies
- Remove Aegis manual_setup firewall pre-conditions
- Implement native ask_sudo wrapped in osascript/pkexec for UI collection
- Fully script bare-metal Windows UAC powershell payload handling
…n prompt

- Added a contextual AppleScript dialog explaining the privacy boundary
- Injected explicit 'Approve' and 'Manual Install' GUI buttons before hitting sudo
…g, non-fatal install, ask_sudo command transparency
…3.10+

Google's official Edge TPU wheels only support Windows Python up to 3.9.
We now use an inline Python script to probe sys.version_info during deploy.bat
execution. It automatically falls back to community-compiled PyCoral wheels
(feranick/pycoral) if Python 3.10 or 3.11 are detected natively.

Also added user alerts advising that UAC will spawn a detached Google setup
console window that they must wait for.
…logic

Replaced the deprecated apt-key logic in the deploy.sh script for Ubuntu/Debian
environments with modern gpg keyring hooks. Also explicitly installed
python3-pycoral through the apt registry rather than fetching standard pypi
builds, as Google does not publish wheels natively for modern Python.

Added a detailed architecture documentation and Mermaid flow diagram to the
YOLO 2026 Edge TPU deployment package.
…ipts

deploy.sh is now a thin OS dispatcher routing to:
  deploy-macos.sh  — arm64 (feranick) and x86_64 (official Google runtime)
  deploy-linux.sh  — pyenv-based Python 3.9 lock so pycoral wheels work
                     on any distro without relying on apt python3-pycoral
  deploy.bat       — Windows (unchanged, existing entry point)

Benefits:
- Platform scripts are fully isolated — fixing Linux cannot break macOS
- Linux now falls back to pyenv Python 3.9 if system Python is 3.10+
- RPM-based distros get a clear manual install message instead of silently failing
Two failure modes now monitored:

1. invoke() hang: We run interpreter.invoke() on a daemon thread with
   a 10s timeout. If it doesn't return, we emit a tpu_error/invoke_timeout
   event and exit(1) so Aegis restarts the skill.

2. Silent stall: After the TPU has produced >=5 genuine detections,
   if 30 consecutive frames return zero objects, we emit tpu_error/stall.
   stall resets after reporting so Aegis gets one clear signal per episode
   rather than a flood of events.

Both events include retriable:true so Aegis can auto-restart.
…wrapper

The entry point was set to 'scripts/monitor.js' (runtime: node) which never
existed. Aegis's runtime resolver already knows how to find venv/bin/python3
for Python skills, so we can point directly at detect.py.

This eliminates the extra Node.js hop and ensures the venv Python (with all
deps installed) is used instead of the system Python.
pycoral was never imported by detect.py or tpu_probe.py — both use
ai-edge-litert directly. Removing pycoral from the deploy scripts means:
- No Python version pinning needed (works with any python3)
- No pyenv installation on Linux
- No brew install python@3.9 on macOS
- Works out of the box with system Python 3.12 or 3.13

Tested: ai_edge_litert imports cleanly on Python 3.12.13
…f storing in git

Dropping the 13MB of binary .tflite files from the DeepCamera repository
to prevent repository bloat.

The installer scripts (deploy-macos.sh, deploy-linux.sh, and deploy.bat)
now dynamically download the official standard detection models from
Google's Edge TPU GitHub repository at deploy-time using curl (or Start-BitsTransfer
on Windows).
…nd watchdog

- Replaced references to PyCoral framework with ai-edge-litert
- Documented the new dynamic model download behavior at deploy-time (no longer tracked in git)
- Added a section on Resilience & Auto-Recovery covering the TPU Watchdog's hang (10s invoke timeout) and stall (30-frame silent drop) detection logic
- Refined Linux/macOS Python documentation since the constraint has been lifted to 3.9-3.13
The Coral Edge TPU skill has been hardened with the ai-edge-litert runtime, dynamic
model deployment, and robust TPU health watchdog monitoring across all 3 platforms.
Updating the catalog status from Testing (🧪) to Ready (✅).
feat: migrate Coral TPU skill from pycoral to ai-edge-litert (LiteRT)
@solderzzc solderzzc merged commit f9073ad into master Mar 29, 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