P3: Acquire & automate

Abierto
#17 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python

Línea de trabajo

Start with the p3-log-acquisition OpenSpec change and its acquisition-service requirements, then read the linked roadmap and pitfalls document. The issue says the change is implemented, but lists live-roboRIO throughput and checksum verification, USB testing on Linux and Windows, and Windows service and CI work as pending; check the linked follow-up issues and human verification checklist to find the current entry point. Done means the remaining verification is complete and matches appear unattended within five minutes.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

roadmap

Size: S · Depends on: IgniteRobotics/flashpoint-private#68 · OpenSpec: p3-log-acquisition

Status

Update 2026-10-19: the Windows CI job (group 9) is done. What's left is [HUMAN] 11.1–11.4, tracked in IgniteRobotics/flashpoint#13. Windows test gaps: IgniteRobotics/flashpoint#3; owlet flake: IgniteRobotics/flashpoint#4.

Status: implemented; human verification pending (change p3-log-acquisition, on main). Open: the live-roboRIO task (throughput, sha256sum on the rio), a real USB stick on Linux and Windows (macOS passed 2026-10-05), the Windows service, and the Windows CI job (group 9, still pending). The container moved out of P3 (ADR-0009 amended).

  • Follow-up, change acquire-replay-build (2026-10-15): after a successful derive the acquire cycle (watch and one-shot, not a dry run) runs an incremental flashpoint report as its own process, between derive/detect and backup, so a new match reaches Replay without a restart; a running serve lists it after a page reload. A failed or locked build stays owed (persisted as report in the watch status, shown by doctor) and is retried each cycle. flashpoint report now holds meta/report.lock and exits 3 when another build has it. Spec placement: the requirements live in match-reports ("Replay data kept current by the acquire watch", "One Replay build at a time") because acquisition-service exists only in the unarchived p3-log-acquisition change. When P3 archives, add the Replay build step between derive and backup in acquisition-service's "One-shot and watch modes" list. Implemented as PR IgniteRobotics/flashpoint-private#59; archived 2026-10-15 (specs synced: match-reports). Pit check ([HUMAN] 4.3) is open.

Scope

  • SFTP puller (paramiko or asyncssh, [Background]):
    • copies to the inbox, verifies size and hash, and never deletes on the robot by default;
    • is aware of rotation: warn when robot free space is under 100 MB, since WPILib and Phoenix prune at 50 MB (WPILib Developers, 2026b; CTR Electronics, n.d.-a).
  • Removable media: USB sticks (macOS, Linux, Windows) are a pull source next to the robot, read-only and hash-verified. Manual inbox drops still work.
  • Watcher: flashpoint acquire --watch cycles robot, volumes, ingest, derive, the Replay build and backup.
  • Packaging: a systemd user unit with a correct ExecStart (pitfall 7) and a Windows scheduled task. Windows is supported. The container is deferred out of P3.
  • Backup: rclone copy of lake/raw (immutable) and a lake/meta snapshot [Background]. Replaces drive-backup.py.
  • Exit: plug in the robot, and within 5 min its matches show up in the views, unattended.

Moved from the rewrite roadmap on 2026-10-19. That doc keeps the dependency graph, migration, quality gates and risks. Status lives here. Author-year citations are in references.md. pitfall N refers to 03-pitfalls-and-performance.md.

Lenguaje dominante
Python
Estrellas
0
Forks
1
Merge medio
18 h 37 min
PR fusionados (30 d)
15

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de IgniteRobotics/flashpoint

Todos los issues de IgniteRobotics/flashpoint

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.