P3: Acquire & automate

Aperta
#17 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
Python
Stelle
0
Fork
1
Merge medio
18h 37m
PR unite (30g)
15

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di IgniteRobotics/flashpoint

Tutte le issue di IgniteRobotics/flashpoint

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.