Skip to content

fix(W8-8): firmware source-inventory probe regression (5 tests, surgical) - #185

Merged
Ghenghis merged 1 commit into
feat/hermes3d-7-complete-gui-repo-wiringfrom
claude/w8-8-firmware-probe-regression
May 10, 2026
Merged

Ghenghis merged 1 commit into
feat/hermes3d-7-complete-gui-repo-wiringfrom
claude/w8-8-firmware-probe-regression

Conversation

@Ghenghis

Copy link
Copy Markdown
Owner

Summary

Test plan

  • python -m pytest 04_testing/pytest/unit/test_source_runtime_contracts.py -k test_firmware_source_inventory — 5/5 PASS (was 0/5)
  • python -m pytest 04_testing/pytest/unit/test_source_runtime_contracts.py -k firmware_probe_returns_ready — 1/1 PASS (new pin)
  • python -m pytest 04_testing/pytest/unit/test_source_runtime_contracts.py 04_testing/pytest/unit/test_module_runtime.py 04_testing/pytest/unit/test_firmware_farm_probes.py — 166 PASS / 0 regressions

Hermes evidence chain: PASS
Task ID: H3D-CLAUDE-W8-8-FIRMWARE-PROBE
hermes_run_gate: tests.unit
Lock owner: claude-w8-8-firmware-probe
Hermes locks released after merge

Doc: 03_implementation/docs/handoffs/W8-8_FIRMWARE_PROBE_REGRESSION_2026-05-09.md

Sources

🤖 Generated with Claude Code

W7-3 truth-check found 5 parametrized
test_firmware_source_inventory_is_reference_only_not_executable failures
returning status="blocked" instead of "ready".

Root cause: PR #120 (firmware source inventory probes) changed BUILTIN_RUNTIME_PROBES
firmware row entries:
  - kind: "source_inventory" -> "firmware_source_inventory"
  - path: "" -> hardcoded absolute paths

The dispatcher _safe_runtime_probe has no branch for
"firmware_source_inventory" kind, so the probe falls through to the default
executable-path block and returns "blocked". Even with the kind fixed, the
hardcoded path skips the mod.local_path fallback in _source_inventory_probe,
which CI (and tmp_path-based unit tests) need.

W7-3 hypothesised a PR #150 (broad-except cleanup) interaction; on read,
PR #150 only edited _private_runtime_env and is innocent of this regression.
PR #150's broad-except cleanup is intact — NOT reverted.

Fix: surgically revert kind/path on the 6 firmware rows (firmware_klipper,
marlin, prusa_firmware, reprapfirmware, repetier_firmware, smoothieware) to
their pre-#120 values. Inline comments mark these as load-bearing for
_runner_status mapping. firmware-specific provenance is preserved by
tool_key="firmware_source_inventory" and
proof_gate_version="firmware-source-inventory-v1". The new
probe_firmware_source_inventory() function and FIRMWARE_SOURCE_PATHS
registry from PR #120 are unchanged.

Tests
- 5 previously-failing test_firmware_source_inventory_* tests now PASS
- 1 new regression-pin: test_firmware_probe_returns_ready_when_files_exist_and_verifier_index_empty
- Adjacent: test_source_runtime_contracts.py (42), test_module_runtime.py
  (72), test_firmware_farm_probes.py (49) — 166 PASS / 0 regressions

Sources
- PEP 8 Programming Recommendations (broad-except guidance):
  https://peps.python.org/pep-0008/#programming-recommendations
- PR #150 description (ba4194d): scope is observability-only; explicitly
  not behavioral.

Doc: 03_implementation/docs/handoffs/W8-8_FIRMWARE_PROBE_REGRESSION_2026-05-09.md

Hermes evidence chain: PASS
Task ID: H3D-CLAUDE-W8-8-FIRMWARE-PROBE
Lock owner: claude-w8-8-firmware-probe
hermes_run_gate: tests.unit
Hermes locks released after merge

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@gemini-code-assist

Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@coderabbitai

coderabbitai Bot commented May 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d49de885-1094-46ad-af4a-acedf3ba3cec

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/w8-8-firmware-probe-regression

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

@Ghenghis
Ghenghis merged commit 4b557fe into feat/hermes3d-7-complete-gui-repo-wiring May 10, 2026
1 check passed
@Ghenghis
Ghenghis deleted the claude/w8-8-firmware-probe-regression branch May 10, 2026 04:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant