P3: Acquire & automate

オープン
#17 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
python

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
Python
スター
0
フォーク
1
平均マージ
18時間 37分
マージ済み PR(30日)
15

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

IgniteRobotics/flashpoint のほかの issue

IgniteRobotics/flashpoint の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。