You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MAI/docs/superpowers/plans/2026-06-29-docker-offline-g...

78 lines
3.3 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Docker Offline GPU + Proto UDP Implementation Plan
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** Добавить офлайн GPU Docker-упаковку для live/video запуска и новый опциональный UDP backend испытательного протокола.
**Architecture:** Конфигурация контейнера будет управляться env-переменными поверх текущих дефолтов в `config.py` и `config_intercept.py`. Новый backend `proto_udp` будет встроен в существующий `AutopilotBridge`, а Docker-артефакты обеспечат офлайн runtime с уже установленными зависимостями и моделью.
**Tech Stack:** Python 3.12, PyTorch CUDA, Ultralytics YOLO, OpenCV, Docker, docker-compose, UDP sockets.
---
### Task 1: Add tests for protocol backend and env overrides
**Files:**
- Create: `tests/test_autopilot_proto_udp.py`
- Create: `tests/test_runtime_env.py`
- [ ] **Step 1: Write failing tests for UDP packet packing and backend selection**
- [ ] **Step 2: Run targeted pytest commands and confirm failure**
- [ ] **Step 3: Add failing tests for env override parsing**
- [ ] **Step 4: Run targeted pytest commands and confirm failure**
### Task 2: Implement runtime env overrides
**Files:**
- Create: `runtime_env.py`
- Modify: `config.py`
- Modify: `config_intercept.py`
- [ ] **Step 1: Add minimal env parsing helpers and runtime override API**
- [ ] **Step 2: Apply overrides to source/model/output/backend-related settings**
- [ ] **Step 3: Re-run env override tests until green**
### Task 3: Implement protocol UDP backend
**Files:**
- Modify: `autopilot_bridge.py`
- Modify: `config_intercept.py`
- [ ] **Step 1: Add protocol config defaults**
- [ ] **Step 2: Add packet builder and `proto_udp` backend**
- [ ] **Step 3: Wire backend selection into `AutopilotBridge`**
- [ ] **Step 4: Re-run protocol tests until green**
### Task 4: Make runtime self-contained for container use
**Files:**
- Create: `bytetrack_min_aggressive.py`
- Modify: `main.py`
- [ ] **Step 1: Vendor the local ByteTrack implementation into the project root**
- [ ] **Step 2: Remove dependency on parent-directory import for container runtime**
- [ ] **Step 3: Re-run affected tests and compile checks**
### Task 5: Add Docker packaging
**Files:**
- Create: `Dockerfile`
- Create: `.dockerignore`
- Create: `requirements-docker.txt`
- Create: `docker-compose.yml`
- Create: `docker/entrypoint.sh`
- Create: `README_docker.md`
- [ ] **Step 1: Define offline-friendly GPU image build**
- [ ] **Step 2: Add compose service with GPU/runtime env setup**
- [ ] **Step 3: Document build and launch modes for camera/rtsp/udp/video**
### Task 6: Verify end-to-end artifacts
**Files:**
- Modify: `docs/superpowers/plans/2026-06-29-docker-offline-gpu-proto-udp-implementation.md`
- [ ] **Step 1: Run targeted pytest for new and touched tests**
- [ ] **Step 2: Run `python -m compileall` for changed Python files**
- [ ] **Step 3: Report any remaining runtime limits that require host-side NVIDIA/Docker setup**