You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Open crates/fbuild-packages/src/library/esp32_framework/mod.rs — confirm the framework URL / commit / sha256 are pinned as const &str and that the only public constructor takes no override.
Open the orchestrator at crates/fbuild-build/src/esp32/orchestrator/ — does it consult config.get_env_config(env_name)? for a platform_packages entry naming this framework, and pass the URL+ref through to a with_override constructor? Or does it only ever call the default constructor?
Reply on this issue with:
bug exists — if the orchestrator never reads platform_packages, plus file:line for both the const URL pin and the call site. (also check esp32_platform.rs and esp32/orchestrator/install_deps_processor.rs)
fixed / no bug — if an override path exists, plus file:line showing the lookup + override constructor.
Reference
#663 is the original report of this pattern (nxplpc). #664 lists every framework package being audited. Use the same evidence shape: file:line for the const URL pin and for the orchestrator call site.
crates/fbuild-packages/src/library/esp32_framework/mod.rs:44 — only constructor new(project_dir, _mcu), ignores overrides; from_url() at line 80 accepts URL but never called with platform_packages
crates/fbuild-build/src/esp32/orchestrator/packages.rs:43 — fallback uses hardcoded Esp32Framework::new(project_dir, mcu) when platform.json lookup fails; no platform_packages check
EVIDENCE (platform):
crates/fbuild-packages/src/library/esp32_platform.rs:13 — const PLATFORM_URL pinned to "pioarduino/platform-espressif32@stable"
crates/fbuild-packages/src/library/esp32_platform.rs:27 — only constructor new(project_dir), no override parameter; no from_url() alternative
crates/fbuild-build/src/esp32/orchestrator/packages.rs:20 — calls only Esp32Platform::new(project_dir), never reads env_config.get("platform_packages")
NOTES: ESP32 framework has from_url() escape hatch (used for platform.json URLs) but orchestrator never checks platform_packages env override. ESP32 platform has no constructor variant at all — completely hardcoded to pioarduino stable. Both silently ignore user overrides. Matches #663 exactly.
Activity
zackees commentedon Jun 20, 2026
VERDICT: bug exists
EVIDENCE (framework):
new(project_dir, _mcu), ignores overrides;from_url()at line 80 accepts URL but never called with platform_packagesEsp32Framework::new(project_dir, mcu)when platform.json lookup fails; no platform_packages checkEVIDENCE (platform):
new(project_dir), no override parameter; nofrom_url()alternativeEsp32Platform::new(project_dir), never readsenv_config.get("platform_packages")NOTES: ESP32 framework has
from_url()escape hatch (used for platform.json URLs) but orchestrator never checksplatform_packagesenv override. ESP32 platform has no constructor variant at all — completely hardcoded to pioarduino stable. Both silently ignore user overrides. Matches #663 exactly.