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
Raised by the adversarial review of C1 (#221), which noted the compiled .bin and .elf are discarded after every CI run.
Two concrete uses:
Download and flash a build from a PR without setting up the toolchain. Field Compass requires human hardware verification before merge, so today the reviewer must build locally to test — the artifact removes that step.
Symbol-level comparison. B4: src/ include/ lib/ layout - behaviour-neutral #186 established that identical size totals do NOT prove behaviour-neutrality: symbol set, sizes and types were identical across 14,958 symbols while 608 addresses shifted from link order alone. E4 (Epic E4: break src.ino into translation units #212) needs that comparison per extraction, and comparing against a CI artifact is more trustworthy than comparing against whatever a developer machine produced — the diagnosis measured a 3,616 byte flash difference between a clean core dir and the dev box on identical source.
Scope: upload firmware.elf and firmware.bin per env via actions/upload-artifact, with a retention period that does not accumulate cost.
Note the ELF is large (22 MB in local builds, mostly DWARF). Decide whether to upload both, or the .bin plus a stripped ELF, or gate the ELF behind a label.
Acceptance: a PR run produces downloadable artifacts per discovered env, and the retention setting is a recorded decision rather than the default.
Recreated from
Strycher/Field_Compass-archive#234 — originally opened by @Strycher on 2026-09-06. Credentials redacted where present.Epic: #155
Raised by the adversarial review of C1 (#221), which noted the compiled .bin and .elf are discarded after every CI run.
Two concrete uses:
Download and flash a build from a PR without setting up the toolchain. Field Compass requires human hardware verification before merge, so today the reviewer must build locally to test — the artifact removes that step.
Symbol-level comparison. B4: src/ include/ lib/ layout - behaviour-neutral #186 established that identical size totals do NOT prove behaviour-neutrality: symbol set, sizes and types were identical across 14,958 symbols while 608 addresses shifted from link order alone. E4 (Epic E4: break src.ino into translation units #212) needs that comparison per extraction, and comparing against a CI artifact is more trustworthy than comparing against whatever a developer machine produced — the diagnosis measured a 3,616 byte flash difference between a clean core dir and the dev box on identical source.
Scope: upload firmware.elf and firmware.bin per env via actions/upload-artifact, with a retention period that does not accumulate cost.
Note the ELF is large (22 MB in local builds, mostly DWARF). Decide whether to upload both, or the .bin plus a stripped ELF, or gate the ELF behind a label.
Acceptance: a PR run produces downloadable artifacts per discovered env, and the retention setting is a recorded decision rather than the default.