LibreEcho radar-puffin-v0.13.9
LibreEcho radar-puffin v0.13.9
This is the LibreEcho stable/product release for the Amazon Echo 2nd Gen (radar_puffin, ARMv7, Linux 6.1).
Release identity
- Release channel:
stable - Release classification: normal GitHub release
- Product, Platform, Linux 6.1, and UI identities are bound to the exact stable build artifact.
Cross-repository included changes
The following ledger is generated from the exact component heads used by the stable image. It is not inferred from branch names.
Product
- Selected head:
6be7e530d0e2c73de9fe6e8f8c2e36618f15c012 - Comparison base:
tags/radar-puffin-v0.13.7 - Changes:
95910d53737edocs: add beginner installation guide1f087da5e29bdocs: tighten install guide board notes53adcc4f977adocs: add public BROM shorting guide24340a37102bdocs: keep generated preview out of repository86a39fc3bab1docs: make UART optional for installation74de410a4b36docs: document USB solder and pogo connections64250a91457cdocs: explain heat spreader access to BROM point3ecd82c88a36docs: correct UART board and installer statusab2b1c82e089docs: order USB setup before BROM shortc1c799d34d99ci: define hosted public build boundary6691ec4ef3d2ci: fail closed on uncleared public inputs6c54e22d8b1fci: add public model source identitiesafc1f4e80e4eci: clear public AOSP and plist inputs7f036d2bd264ci: pin public toolchain sourcesdffd5fe9fad1ci: add cleared public source archives4c83772b5a81ci: model vendor firmware as first-boot import7726cacc45eeci: preserve mature builder in hosted public moded8d85d0f8763test: keep public builder contracts focuseda81e702b4e36ci: invoke mature builder from hosted adapterc870a4662c0fci: stage public dependencies and toolchain8e36ba806ce2ci: build public ARM32 toolchain from sourcefe49178aea4aci: align staged inputs with mature buildercf2c99f81008refactor: simplify hosted public build boundary3a8ac93fc9e8ci: add pull request hosted validation55ca2e12d1b6fix: install hosted ARM32 toolchain71a1c5babf54fix: replace generated musl loader symlinke5d9c8ec254afix: avoid host musl loader assumption5770b2070f71fix: set hosted kernel output rootacd2b004b865ci: pass staged public inputs to mature builder045eeaaab07dfix: retry hosted public downloads over IPv41b637853c71efix: retry transient toolchain downloads8496cbaff343ci: pass hosted ARMHF runtime rootsfc8631f9d975fix: isolate hosted product checkout and modes2e4c8f92f52aci: stage public ARMHF runtime packagesdd64dec83ff0ci: stage ARMHF packages without global apt changes8e276795780ffix: stage concrete ARMHF compiler packages8442c13f4f58fix: expose versioned ARMHF compiler wrappers9bbd9717d003ci: stage public eSpeak and Flite sourcesbc7eb2bbc477ci: persist verified component cache across runs5c6403a4fd4cfix(ci): wire public neural dependency build52ecb303efb5fix(ci): assemble sherpa ONNX runtime archive1e7e4fe590e9fix(ci): stage ONNX dependency archive closure6ba1e06aed96fix(ci): harden public toolchain downloads36e7811fd52cfix(ci): use canonical musl release archivead3fcd83f212fix(ci): include ARMHF compiler runtime closure0ef1a500c7c9fix(ci): expose ARMHF binutils runtime libraries4dfa2e234175fix(ci): include ARMHF runtime libraries0d82e66d19e9ci: cache toolchain, neural deps, kernel objects, and components across runsa8aa3b4d7da4fix(ci): use staged ARMHF sysroot for neural builds6b1f7fa6f39aci: exclude neural subdirectory from public-deps cache layerb7815beab655ci: gate cold-path cache saves on success4c64ccb0bfafci: stage libc6-armhf-cross runtime for the neural sysrootd81f7856d86cci: restore AirPlay sysroot staging and complete ARMHF chmod06d1b224b377ci: stage ARM kernel UAPI headers and bind root digest to cache keysb1e2aeac81f8fix(ci): stage flat ONNX Runtime headers for the Sherpa build7df2b53c60e7fix(ci): pass staged cross compiler and sysroot to SpeexDSP configure204136d34a05docs: add unified agent branching, PR, and versioning rules1cc4b5a86694docs: address Codex review on branch model, backport PRs, and docs-only CI98d00460f140ci: restore exec bit on staged host-tools plistutilf3512eb23a1eMerge pull request #59 from aslater3/docs/agent-instructions-release-flow207096187f47ci: clear the remaining hosted-runner gates before component builds3d0069cf4ac1ci: point MUSL_CROSS_PREFIX at the alpine-named compiler copiese8a20c787581fix(ci): stage toolchain libexec beside the usr/bin compilers6a94ac97ea53test: match merged toolchain libexec chmod line13c3c007eabefix(ci): stage the complete GCC closure beside the usr/bin drivers61301a531862fix(ci): order toolchain staging so usr/lib and usr/arm-linux-musleabihf existac3d9dd6bbcffix(ci): give hosted musl the Alpine SONAME the device loader resolves6f45f7cf2a12ci: export kernel UAPI headers for component builders21ec7a036b67ci: stage digest-pinned qemu-arm-static for runtime contract checks3f1344a7042efix(ci): keep volatile build paths out of the target archives7a722006e6f1fix(ci): strip DWARF from target archives to kill volatile path leaks6c16015f9431ci: chmod libexec cc1 so the kernel compiler probe passes37c8826c5261ci: export LD_LIBRARY_PATH for the staged ARMHF binutils5975d8277e6bci: stage digest-pinned dtc/fdtget for the radar-puffin DTB contractee9d6fcfc364fix(ci): use the Debian orig libsodium archive the OTA lock pinseeb7cdc42f65fix(build): adbd cache key must cover the whole adbd tooling tree8ce71dd0e074fix(build): repair hosted-lane compiler/sysroot/host-tool wiringa07aedef2870ci: re-trigger PR workflow for 8ce71dd (event dropped)7d43c4f468aaci: accept release/0.13.8 as a PR base1fc3edcef0effix(build): build Flite into the neural cache + stage cpio for the ramdisked297209ff81fix(ci): expose the staged ARMHF cross tools on PATH via a shim45ad01a2e842fix(ci): anchor the staged ARMHF sysroot at its packaged absolute pathsdfb6ff7df5abfix(ci): add usrmerge symlinks to the AirPlay sysroot closurecb2c26e45633fix(ci): drop conflicting cross-layout glibc from the AirPlay sysroot seed17cef3814f5etest(ci): assert the corrected AirPlay sysroot seed (no cross-layout glibc)7a4f07c6422bci(build): make AirPlay sysroot probe builder-faithful (-L into native lib dir)0dc4c8951925ci(build): stage zlib1g-dev into AirPlay sysroot for FFmpeg's -lz injectiona978232e9949ci(build): stage alsa-ucm-conf/topology-conf; point AirPlay ALSA data at sysrootd70b4bed2640ci(build): merge real top-level dirs into usr/ for usrmerge sysroot31373767b803ci(build): derive reviewed TTS voices from pinned upstream Piper models594f2259c96cci(build): fetch dropbear from the official dropbear.nl mirrorf539d0c05cd9ci(build): vendor reviewed CA bundle instead of copying the runner's live bundle86514c1649f2ci(build): vendor reviewed connectivity helpers (byte-exact contract)e4bec8849998ci: upload verified dev and nightly build artifactsda381d32757dci: name dev artifacts with resolved product commit8229ab73de8dci: remove non-functional publish jobs6216fddf23a4ci: preserve restored kernel object cache4b1549018184ci: preserve kernel cache across fresh checkoutsb6d8a2195f18Merge remote-tracking branch 'origin/main' into feat/public-hosted-build2ca080608347ci: skip image builds for documentation-only changes- ... and 115 additional commits
Platform
- Selected head:
6df8d684781384083e21d4708513054c9903623a - Comparison base:
heads/main - Changes:
667288212583fix(dtb): bind final audio refs by provider node93917f8715beci: install device tree tools before tests0a270ce741cdMerge pull request #99 from aslater3/fix/release-0.13.9-dtb-phandles-backport5acdf96ef05dfix(image): accept conditional Bluetooth readinesse05c01396399Merge pull request #103 from aslater3/fix/release-0.13.9-ui-startup-contractf2d83ace8ab6fix(tts): update northern voice model pin9a3f893e19fctest(tts): derive corrected model in package contract6d7d493c8ef3Merge pull request #105 from aslater3/fix/release-0.13.9-tts-sherpa-sample-rate27abb57da14cfix(tts): package Sherpa-compatible voice metadata4c8f0c0e43eaMerge pull request #107 from aslater3/fix/release-0.13.9-tts-sherpa-standard-metadatae9cf2ac5057cmerge: align release/0.13.9 with mainb9b98295ddd8fix: retain partial active playback periodse4918a63b05ffix: reject conflicting audio pinctrl statese24f701feaf9fix: close remaining platform review findings9191613b7700fix: close final audio review findings53f1840d1956fix: preserve announcement tail activity838ec29764admerge: align main into release/0.13.9c302a745e833fix: accept inherited pinctrl states in audio composites4793aabc556afix: accept inherited pinctrl states in release DTB6df8d6847813fix: accept inherited pinctrl states in release DTB
Linux 6.1
- Selected head:
6feadeff941e55d2a5aa54915a81fd6b5deef7ca - Comparison base:
heads/main - Changes:
0e454f11e9bdmerge: align release/0.13.9 with main6feadeff941emerge: align main into release/0.13.9
UI
- Selected head:
54aa52b8a3c628d078da4a433da3929d399b184e - Comparison base:
heads/main - Changes:
8d994598db70fix(integrations): restore Home location settings panel5eed0a744693chore(web): advance asset cache revision2af4ab945441test(web): cover Home location panel wiringa21803d2fdf2test: run Home location panel regression contractf7b3cb60d622release: set LibreEcho UI version to 0.13.9fc39dd17cbb6fix(weather): reject stale or invalid location coordinates886871d8acaatest(weather): cover coordinate consistency guards1c545a95af5ffix(bluetooth): guard repeated scans and report completione9b564ce4df4chore(bluetooth): advance script cache revisiond5d263e7484etest(bluetooth): cover active-scan UI contract42466d9f7768Merge pull request #133 from aslater3/release/0.13.9-versiona54fac722317Merge pull request #132 from aslater3/fix/0.13.9-home-location-paneldfeddcde50d1Merge pull request #134 from aslater3/fix/0.13.9-home-location-validatione076f7e5c6e2Merge branch 'release/0.13.9' into fix/0.13.9-bluetooth-scan-ui27ced65a345eMerge pull request #135 from aslater3/fix/0.13.9-bluetooth-scan-ui460e6ab18914fix(ui): restore canonical GitHub linkfd88f91222a7Merge pull request #195 from aslater3/fix/release-0.13.9-canonical-github-linkbce8007cefd8fix(startup): wait for voice dependencies5ce64cf53749Merge pull request #197 from aslater3/fix/release-0.13.9-agentd-startup-readiness08a932293a10fix: make voice settings writes idempotentffcb5ac85ae9test: align 0.13.9 UI contractse40187e991acfix: clarify local speech and assistant provider74df364915b8fix: keep production TTS stop responsive6488bef0d5b9Merge pull request #198 from aslater3/fix/0139-settings-restartbb95ee55cf34merge: align release/0.13.9 with main7648736a522bfix: close reset and Wi-Fi review findingsbbd9cf345315fix: close remaining setup review findings68a7c12aeba7fix: close remaining UI review findings241dd75592d4fix: close final setup and persistence findings97efdb4a7dc9fix: close remaining setup and timer review gates54aa52b8a3c6merge: align main into release/0.13.9
Downloads and verification
The release contains the signed OTA bundle, initial-install bundle, boot image, feature payloads and manifests, OTA public key, installer, and SHA256SUMS. Verify the published checksum inventory before use.
License and distribution boundary
This release is community-noncommercial. The wakeword model is licensed under CC-BY-NC-SA-4.0: use is noncommercial, attribution is required, modifications must be indicated, and adaptations remain subject to ShareAlike.
TTS voice assets include material under CC-BY-SA-4.0 and retain their separate attribution and ShareAlike obligations.
Review the bundled notices and the project release-closure records before redistribution. The release excludes credentials, signing keys, device identifiers, owner-local connectivity firmware, and vendor boot-chain material.
Validation boundary
Stable publication proves that the Product workflow built, signed, and verified the release asset set. It does not by itself claim physical-device runtime acceptance; deployment, readback, runtime validation, and slot confirmation are separate evidence gates.