Development status — 2026-09-23¶
Latest Hosyond update (installed 2026-09-23): the alert-selection correction targets the last displayed card even when another radio event arrives before touch. Cards/actions show a board-local ID, already-ignored feedback and Apple/Find My identity details. App-only SHA-256 27857be6757d59f174dc91fa78f2ccba8fd88f601ca29ecd9e0a308c11a3f421 (1,286,384 bytes), flashed at 115200 baud after fresh safe eject, hash verified and board reset. A fresh private NVS backup validated all five CRCs and 17 saved ignores; NVS was not flashed. All 15 sanitizer suites and four profiles pass. The user reported four Likely signals and an AirTag alert returning on the next scan after Ignore; the host regression reproduces a selection race, but physical confirmation that it explains this report remains pending. AirTag address-rotation continuity is not implemented.
Previous storage update (installed 2026-09-23): startup history validation now runs in bounded batches, services internal saves/eject between batches, shows SD CHECK with record/file progress, and retains manual backup requests through queue backpressure. Application SHA-256 d558fd91123c228675acb722451fea36889dbe11c4020c2f87130bbb2dbe8251 (1,285,248 bytes), app-only flash at 115200 baud after fresh SAFE TO REMOVE confirmation; esptool verified the hash and reset the board. All 15 sanitizer suites and four firmware profiles pass. The user confirmed increasing SD CHECK progress and subsequently reported that it works now. Independent card-file verification remains deferred without a reader.
The previous build showed SD OK after mount but validated all history and ran a free-space census before reading its queue, explaining the reported zero SD WRITES/NVS counters and WAITING FOR BACKUP / QUEUE BUSY state in code. No live serial trace was collected. Fresh pre-correction NVS readback confirms the worker eventually saved: generation advanced by ten, all five record CRCs passed, and the 64-slot Companion V2 record retained all 16 original ignore identities, the identity key, SCOUT and the Brass Collar.
The earlier 64-entry expansion, SD backups and dark-theme dog outlines remain included. See Ignore storage. Its application was bcb4c29fd9e06ad472ec3f72360b5bc41d3f47af99cb767abb9eb66b127b7330 (1,283,744 bytes). Saved-state migration is verified by the fresh readback; on-screen counts, backup completion and ear contrast remain physical acceptance checks. The local preview is updated.
The initial software work and roadmap additions (Scent Book, wardrobe, Snooze/Ignore, Follow Scent and Atmosphere) are implemented. See roadmap for the full emulator-inspired backlog. This is still a development build; the Hosyond display board is now connected and initial hardware bring-up has started.
| Area | Current behavior | Verification still needed |
|---|---|---|
| Build | Pinned ESP-IDF 6.0.2; release/debug/test/demo; sanitizer tests and CI definition | Remote CI execution and release sign-off |
| Pet/UI | Six dogs; landscape default, rotation lock; all 19 snack motifs; level-up/touch reactions; timed fullness/mood decay, teary slow poses and meal-recovery hops; Start/Stop with sleeping Zs; compact alerts even without meals; distinct recent-signal totals; 32-entry paged history and evidence snapshots; Scent Book, earned outfits, Snooze/Ignore, fresh RSSI follow, themes, scenes and speech | Screen readability, touch accuracy and physical accessibility on E32R40T |
| Idle display | Selected dog/outfit DVD-style bounce; independent 2/5/15-minute dim/saver/off defaults; saved timeout controls and preview; touch/BOOT/eligible-alert wake; Travel Watch blocks off | Host tests and all four builds pass; installed with verified flash; physical backlight/display-off/wake, retained settings and heap checks pending |
| Detection | 67 rules across 19 categories; 128-bit UUIDs; probe requests; structured uncompressed Pwnagotchi; Apple Find My distinction; bounded Remote ID assembly; corroborated security mismatch | Most product signatures have source evidence only; controlled positive/negative captures remain necessary |
| Tag Watch | Manual ten-minute repeated-tag heuristic; bounded keyed identities; compact possible-following card, slow red background flash/steady mode, ACK/Ignore/Snooze, per-tag timing/reset status and synthetic preview | User confirmed alert trigger and red flashing with dog/controls visible on Hosyond; no GPS/motion proof; rotating addresses can evade continuity; controlled moving/stationary RF tests pending |
| Storage | Complete-row validation at boot; bounded incomplete-tail repair; corrupt-log write lockout; full historical event export with progress/completion feedback; checked safe-eject acknowledgement; deferred save retry; free-space display; confirmed log deletion | Physical SD failures, card swaps, power interruption and long exports |
| Persistence | v1/v2/v3/v4 migration to v5; settings/pet/system/companion/appearance namespaces; CRC-protected double slots and commit generation; fail closed on invalid state | Production loader/writer interruption models passed; reboot/power-cut matrix on target NVS remains open |
| Clock/power | Manual UTC with time-quality labels; three-point battery calibration; optional voltage/estimated percentage; critical save/flush/sleep; distinct muted-by-default effects | Meter calibration, threshold characterization, audio level and current draw |
| Diagnostics | Accepted/malformed per radio, queue drops, task watermarks, byte-addressable heap/minimum/largest block, aggregate USB health and display/touch self-test | Initial heap measurements recorded in HARDWARE; minimum-heap acceptance, controlled capture loss and full soak remain pending |
| Display board bring-up | Hosyond ESP32 rev 3.1 / 4 MB attached; original flash backed up, Hound written and hash-verified; application displays; user confirms correct colors with inversion off; saved inversion toggle and frequent-controls-first Settings added; user confirms a 32 GB microSD mounts with SD OK, SD WRITES increases and EXPORTS reaches 1 | Physical toggle/persistence and touch checks; SD logging/export/eject testing in progress; remaining acceptance tests |
| USB C3 test | Shared passive radio/parser/rules received Samsung FD5A advertisements; Stop/Start and watchdog fix verified | Does not validate the E32R40T display, storage or power path |
| Packaging | Deterministic assets/rules; source SPDX inventory; linked-archive inventory, hashes and retained SDK/runtime notices | Final license compatibility review, field accuracy review, eight-hour soak and signed release |
Samsung identity/state update is installed after the user confirmed safe eject: supported FD5A broadcast IDs now survive MAC changes for Ignore/counts/meals/Follow/Travel Watch; explicit owner-connected reports suppress alerts while retaining observations. Log → Samsung → More explains the reported state and identity basis. Existing saved address ignores remain honored and the NVS schema is unchanged. A changed broadcast ID is still a new identity; long-run physical-tag recognition remains open. See implementation details.
The memory-layout correction is installed after a fresh safe-eject confirmation. Before this correction, the user reported 79 KB to just over 80 KB free, with LOW HEAP during Wi-Fi and recovery in BLE. Grouping detection-record members recovers 2,608 static DRAM bytes without changing detection capacity or the 80,000-byte threshold. After the overnight run, the user reports approximately 82 KB current heap and 72 KB minimum; the 80 KB minimum acceptance target remains unmet.
Installed idle-alert adjustment: ordinary AirTag/iBeacon and other eligible alerts now use a separate five-second display wake, no more often than every thirty seconds, without renewing idle deadlines. Following warnings still remain visible. Host regressions cover continuous one-second sightings for sixteen minutes per category; physical checks are pending.
Previous ordinary-alert idle Hosyond application: 283f0f09d23c9968f7518b2a49f4b55bb140787027c7629a843d13c1ebd2adc8 (1,217,024 bytes), ordinary-alert idle correction. Following fresh safe-eject confirmation, NVS backup validated all five records and 15 ignores; the app-only 115200-baud write was hash-verified and the board hard-reset. Saved preferences were not erased. Physical SD remount, saved dog/outfit and timed dim/saver behavior with frequent real alerts await user confirmation. No serial monitor was opened after reboot.
Previous screen-saver Hosyond application: 7bb86dfccc28a22480a5126128dd451ef6248e99529f4b29dab0d98891486c0a (1,217,104 bytes), screen saver update. After safe eject and recovery from an interrupted write, the full application was written at 115200 baud, hash-verified and hard-reset. Fresh private NVS backup passed all five CRCs and retained 15 saved ignores. The 2/5/15-minute idle defaults, selected-dog bounce and Travel Watch display-off override are installed. SD remount, saved outfit, preview/wake and hardware idle timeouts await user confirmation. No serial monitor was opened after reboot.
Previous memory-layout Hosyond application: ba344a3ef1de8bddc9ef7702ad6670aa2cb45bd3b9c7fb9193c151b4d651e375 (1,214,608 bytes). The user confirmed safe SD eject before installation; a private 24 KiB NVS backup validated all five records and 15 saved ignores. App-only writing at 0x10000 completed with esptool hash verification and a hard reset. NVS, bootloader and partition table were left intact. On 2026-09-23 the user reported that this build has been running all night. Reported readings are approximately 82 KB current heap, 72 KB minimum and 3,403 SD writes. The user confirmed SD WRITES continues increasing at the morning check. Largest block, warning recurrence and reset/error history remain pending; the formal eight-hour soak is not yet closed.
Previous Samsung identity application: e6b17931d66f5a689e0ff8c6bddeb0f58303030d8824d43f1fb10e57a0de803e (1,214,576 bytes), installed 2026-09-22 local / 2026-09-23 UTC. App-only writing at 0x10000 completed with esptool hash verification and a hard reset. Pre-update private NVS backup validated all five records and 15 saved ignore identities. NVS was not erased. The user confirmed the post-reboot/SD OK check. Exact Samsung REPORTED state and IDENTITY values have not been supplied; owner-state behavior and long-run identity-rotation validation remain open.
Previous Hosyond application: 1df3ada8e316afa6be55c5a4c90b0882441f3d91f0f5170c728f7e6961478726 (1,212,544 bytes). This update clears a suppressed Home alert that arrived while Ignore was being selected, through either Quiet Alerts or Tag Watch. The host regression and all 11 sanitizer test targets passed; the app-only flash was hash-verified after safe eject. Pre-update NVS readback validated all five records, 10 Samsung and two Apple ignore identities, and an unchanged identity key. The short post-update check stayed at 2 Likely without NEW SCENT cards, but the user subsequently reported another Samsung alert after many hours with only two known tags nearby. Long-run physical-tag suppression remains an open limitation. A production-parser/classifier/UI regression confirms that unchanged ignored identities stay quiet through 24 hours of simulated uptime, while changed addresses can alert with the total still at two. Address rotation is a plausible cause, not confirmed by a fresh capture. The existing Samsung alert-category toggle silences every Samsung identity while keeping counts/logs, but also excludes Samsung Travel Watch warnings.
Earlier SD and reboot checks: User confirmed a 581-record export and SAFE TO REMOVE. Private NVS readback confirmed settings/calibration, appearance, outfit and six ignores survived reboot, with another meal saved. The user also confirmed SD OK and the saved outfit after safe eject, power-off, card reinsertion and reboot. After remount, the user confirmed increasing SD WRITES, NVS SAVES: 1 and NVS ERRORS: 0. Independent export-file inspection is deferred because no card reader is available.
Phone GPS/companion work remains deferred at the user's request. No cloud, active probing, sensitive-export option, on-device rule editor or BLE extended-advertising support is introduced. Those are outside this iteration. The UI history holds the latest 32 emitted events; the SD export streams the stored archive.