Schedule Linux self announcements and retain full MeshCore discover keys.
Align adapter and worker PKI readiness, converge node metadata with public-key
identities, and preserve projected node IDs across persistence and restart.
Avoid routing-prefix self collisions and use local receive time for Nearby
freshness on embedded MC paths. Start MT NodeInfo reply suppression only after
successful transmission.
Add paired-radio discovery/direct-message, directory migration and worker
regressions with English audit and validation notes.
Expose signal-chain controls, mathematical previews, actual phase forecasts and residuals, channel and FEC diagnostics, IQ recording/replay, and synthetic OFDM experiments. Preserve qualified CM0 defaults and compact FFT/NEON decoding, batch diagnostics for real-time reception, and package verified backend sources.
Replace Linux HAL's separately allocated map nodes with bounded owned
storage while preserving its count/find/index/iteration/clear interface.
BUSY polling now reads handles retained by the transport object's memory
lock instead of depending on the capture worker's allocator arena.
Revert broad anonymous-map admission, which exceeded the device's existing
48-MiB admission budget. Keep main-heap/runtime/stack admission bounded.
Verify an owner allocated on the main thread and initialized on a worker
has locked handle storage, plus lookup, replacement, capacity and reuse.
Validation: focused capture-memory/handle regression passed; clang-format
14 and staged diff checks passed. GitNexus reports Linux HAL class impact
as medium (six direct dependencies); its broad pinMode graph is critical,
so that function implementation and its callers remain unchanged.
GPIO initialization occurs on the capture worker, whose allocator arena is
a private anonymous mapping rather than the main process heap. Include
readable private writable anonymous mappings in the existing bounded
admission, while retaining the current-stack window and 48-MiB ceiling.
Run the map-node residency regression inside a real worker thread. This
fails even with main-heap locking and passes with anonymous arena locking.
Validation: worker-thread capture memory regression passed; clang-format14
and staged diff checks passed. GitNexus change analysis was run but this
inline class is absent from the index; direct source diff remains limited
to capture memory admission and its regression.
Include the process heap in the bounded capture memory admission. Locking
the radio object alone does not retain separately allocated GPIO map nodes
that are read during BUSY polling. A failing transfer recorded a minor
page fault during a 1099-us BUSY wait.
Add a regression that checks a real std::map node's locked VMA flags. It
fails with the old admission and passes with heap admission. Preserve the
48-MiB cap and fail-closed behavior. Live RF endurance still needs validation.
Validation: 31 1seg tests passed; ARM application/helper build succeeded;
clang-format 14 and git diff checks passed. GitNexus impact/change analysis
was attempted; the inline memory class is not indexed, so its graph result
does not cover this change. Direct source review limits the diff to memory
admission and its regression.
Expose sample rate, SPI clock and receiver gain in the TV page, persist the
selection, and restart capture and decoding with matching per-generation
parameters. Use 450 kpair/s, 8.7 MHz and gain 9 as the current test baseline.
Present ideal FIFO fill/drain curves beside measured reception counters,
separate preview settings from active settings, and keep the fixed 320x240
video beside programme information. Document that capture timing failures
remain unresolved and that SPI bulk transfers already use DMA.
Validation: 31 1seg tests; actual LVGL page regression with offline IQ and
synthetic metadata, parameter application and reopening persistence; ARM
application/helper compilation; clang-format 14; UI boundary, root artifact
and ESP stack hygiene guards; staged GitNexus change analysis.
Keep IQ capture isolated from decoder startup and rendering, bound transport
backpressure, validate DMA batches before publication, and expose playback
telemetry. Preserve radio restoration and add capture, transport, media and
SDL regression coverage. Document user-accepted CM0 and Sony reception and
the limits of the one-shot kernel experiment.
Repair stale preview TileContext initialization, missing simulator link
sources and Cardputer SDL dependencies. Align menu and radio-log contracts
with current implementations, keep AutoInterface port admission covered,
refresh source inventories, and apply the CI clang-format 14 rules.
Validation: 45 Agenda tests, 30 1seg tests, 8 LR2021 IQ tests, 17 native config
interop tests, ESP stack hygiene, platform/root guards, source inventories,
clang-format 14, git diff --check, and staged GitNexus detect_changes.
Compose the CM0 fullscreen application and standard Debian package, align the
Cardputer Zero shell, and share protocol, configuration, audio and storage
services with embedded targets through existing platform seams.
Add the paginated on-device TMAP creator using Center's published producer,
private workspace recovery and direct keyboard shortcuts. Preserve unfinished
management work behind its existing opt-in capability.
Include native, ARM and shared-core regression fixtures, integration records,
packaging helpers and dependency/license updates. Keep local build trees,
device credentials, produced packages and validation logs outside version control.
Validation before integration: ESP stack hygiene, Reticulum scope guard, staged
whitespace checks and GitNexus scope audit. Prior device/build evidence and
remaining hardware/package boundaries are recorded in the acceptance documents.
Fix P4 control and keyboard integration, use content fonts throughout Music, filter Compass by magnetometer capability, and reduce playback scheduling and SD overhead with L2 audio diagnostics.
Include current navigation, contacts, SD, browser documentation, and regression coverage for remote device testing.
Allow all 17 apps in the catalog and menu, update the Agenda catalog fixture, distinguish fixed array capacity from whole-file GPX reads, and normalize inherited formatting with clang-format 14. Catalog and streaming-guard regressions passed.