Skip to content

fix(autoresearch): resolve fbuild release firmware - #4029

Merged
zackees merged 1 commit into
masterfrom
fix/autoresearch-fbuild-firmware-path
Aug 25, 2026
Merged

fix(autoresearch): resolve fbuild release firmware#4029
zackees merged 1 commit into
masterfrom
fix/autoresearch-fbuild-firmware-path

Conversation

@zackees

@zackees zackees commented Aug 24, 2026

Copy link
Copy Markdown
Member

Summary

  • resolve AutoResearch firmware from fbuild's current .fbuild/build/release/firmware.bin layout
  • retain support for the environment-scoped .fbuild/build/<env>/release/firmware.bin layout
  • add regression coverage for both artifact layouts

Validation

  • uv run pytest ci/tests/test_fbuild_default_selection.py ci/tests/test_ota_peer_hardening.py ci/tests/test_autoresearch_phases.py -q — 205 passed
  • bash lint ci/autoresearch/build_driver.py ci/tests/test_fbuild_default_selection.py — passed
  • /clud-review — clean
  • fbuild port scan — RP2350W COM18 and ESP32-C6 COM9 healthy
  • bash autoresearch rp2350w --net-peer --ota --upload-port COM18 --peer-environment esp32c6 --peer-upload-port COM9 --timeout 120s --skip-lint — cleared the previous missing-firmware failure, accepted the artifact, and reached OTA RPC execution

Remaining HIL result

The peer run now proceeds through beginOtaArtifact, then the ESP32-C6 times out on response ID 3 at the first writeOtaArtifact chunk. That later transport/storage failure is separate from this path-resolution fix.

Relates #3956

Summary by CodeRabbit

  • Bug Fixes

    • Improved firmware artifact discovery to support both standard release and environment-specific release layouts.
    • Added fallback handling when the preferred firmware location is unavailable.
  • Tests

    • Added coverage for default and environment-specific firmware release paths.

@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: d6cdaf0c-18cc-4fc4-a75c-4594bc738e56

📥 Commits

Reviewing files that changed from the base of the PR and between ed7e0be and 8530300.

📒 Files selected for processing (2)
  • ci/autoresearch/build_driver.py
  • ci/tests/test_fbuild_default_selection.py

📝 Walkthrough

Walkthrough

FbuildDriver.firmware_path now selects firmware from default or environment-specific release directories. Tests cover both layouts.

Changes

Firmware path resolution

Layer / File(s) Summary
Release artifact selection and validation
ci/autoresearch/build_driver.py, ci/tests/test_fbuild_default_selection.py
The driver checks the default release artifact, then the environment-specific release artifact, and falls back to the default release path. Tests cover both release layouts.

Estimated code review effort: 2 (Simple) | ~10 minutes

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/autoresearch-fbuild-firmware-path

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@fastled-project-sync fastled-project-sync Bot moved this to In Progress in FastLED Tracker Aug 24, 2026
@zackees
zackees marked this pull request as ready for review August 25, 2026 06:29
@zackees
zackees merged commit e7b10e8 into master Aug 25, 2026
30 checks passed
@zackees
zackees deleted the fix/autoresearch-fbuild-firmware-path branch August 25, 2026 06:29
@fastled-project-sync fastled-project-sync Bot moved this from In Progress to Triage in FastLED Tracker Aug 25, 2026
@fastled-project-sync fastled-project-sync Bot moved this from Triage to Done in FastLED Tracker Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant