P3: Acquire & automate
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- python
- Domain
- backend, data-engineering, devops
Research direction
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.
Written by the indexing model from the issue text.
Description
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 incrementalflashpoint reportas its own process, between derive/detect and backup, so a new match reaches Replay without a restart; a runningservelists it after a page reload. A failed or locked build stays owed (persisted asreportin the watch status, shown bydoctor) and is retried each cycle.flashpoint reportnow holdsmeta/report.lockand exits 3 when another build has it. Spec placement: the requirements live inmatch-reports("Replay data kept current by the acquire watch", "One Replay build at a time") becauseacquisition-serviceexists only in the unarchivedp3-log-acquisitionchange. When P3 archives, add the Replay build step between derive and backup inacquisition-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 --watchcycles 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:
rclonecopy oflake/raw(immutable) and alake/metasnapshot [Background]. Replacesdrive-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.
- Dominant language
- Python
- Stars
- 0
- Forks
- 1
- Avg merge
- 18h 37m
- Merged PRs (30d)
- 15
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from IgniteRobotics/flashpoint
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
IgniteRobotics/flashpoint#45 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
IgniteRobotics/flashpoint#44 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
IgniteRobotics/flashpoint#43 ·
Maintainers usually reply within 1 day
-
bug good first issue
Difficulty 1/5 Under an hour Newbie friendliness 85/100
IgniteRobotics/flashpoint#12 ·
Maintainers usually reply within 1 day
-
tools/update-owlet-manifest.py ignores --help and starts downloadingMay be free again @yoveneim claimed this 11 days ago, and no pull request is open. Openbug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
IgniteRobotics/flashpoint#11 · 1 comment ·
Maintainers usually reply within 1 day
All issues in IgniteRobotics/flashpoint
Similar issues
-
bump patch
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
autowarefoundation/autoware_carla_scenario#1321 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 1-3 hours Newbie friendliness 78/100
QuantConnect/Documentation#2838 ·
Maintainers usually reply within 1 day
-
get_all_subclasses must deduplicate by class identityPossibly taken @Gambit-Checkmate claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 15 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
awslabs/route53-dynamic-dns-with-lambda#67 · 1 comment ·