chore(release): v1.5.0#113
Merged
Merged
Conversation
BLE event-stream quality pass driven by the 2026-05-21 EN/ZH TUI audit and a 5.6 h real-environment capture. Changed: - BLE anonymous-advert presence gate, default 5s. Anonymous adverts (vendor + RSSI only, no name) must be observed for at least presence_gate_s before firing seen; if they age out via TTL before the gate matures, NO event fires -- neither seen nor left. Eliminates the single-packet seen_for=0s ghost flicker while preserving real walk-bys (5-30s contact, multi-packet, still register). Named devices and connected peripherals bypass the gate. CLI flag --ble-presence-gate DURATION + env var DITING_BLE_PRESENCE_GATE; 0 restores the A1 record-everything contract. - diting --help restructured into Subcommands + Global options sections. --notify promoted to top-level flag; analyze flags listed inline; per-flag descriptions trimmed to 2 lines. Fixed: - Events panel said "device joined" but the canonical event types are *_seen. Renamed three EN i18n keys (device seen / service seen / host seen); ZH catalog unchanged. - Events filter footer claimed 1/2/3/4/0; A1 added 5/6/7 bindings for ble/bonjour/lan but the footer + help-modal prose still listed only the legacy five keys. Extended to 1/2/3/4/5/6/7/0 in both locales. - BLE ble_device_left re-emission for flapping identifiers. One identifier in a 5.6h capture produced 229 left events from a single seen. _detect_transitions now gates left-emission on a per-session _departed_identifiers set: at most one left per seen, identifier silent for the rest of the session after departure. JSONL size for the captured session drops ~63%. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Cuts v1.5.0. BLE event-stream quality pass driven by the 2026-05-21 EN ↔ ZH TUI audit and a 5.6 h real-environment capture. Bundles five PRs sitting in
[Unreleased]since v1.4.0:fix(ble): dedup ble_device_left for flapping identifiers— state-machine fix; one identifier no longer emits 229leftevents from a singleseen. JSONL size for the captured session drops ~63 %.fix(tui): align events vocabulary + filter-keys hint with A1— three EN i18n keys renamed (device joined:→device seen:, etc.) so EN UI / ZH UI / JSONLtypeagree; events filter footer + help-modal prose extended from1/2/3/4/0to1/2/3/4/5/6/7/0so the A1-added BLE / Bonjour / LAN filters are discoverable from the TUI.feat(ble): add presence gate for anonymous BLE adverts— anonymous adverts (vendor + RSSI only, noname) must be observed for at leastpresence_gate_s(default 5 s) before firingseen; if they age out via TTL before the gate matures, NO event fires — neitherseennorleft. Named devices + connected peripherals bypass the gate. CLI flag--ble-presence-gate DURATION+ env varDITING_BLE_PRESENCE_GATE;0restores the A1 "record everything" contract. Also folded in:diting --helprestructure (Subcommands + Global options sections,--notifypromoted to top-level,analyzeflags listed).Five PRs merged, three spec deltas applied to canonical specs (bluetooth-scanning twice, tui-shell once). No new dependency, no new schema, no JSONL field change.
SemVer: minor bump 1.4.0 → 1.5.0. The 5 s default presence gate is a behaviour shift but configurable;
--ble-presence-gate 0restores the prior contract. CLI flag is purely additive.Test plan
uv run pytest— 784 passeduv run python scripts/tui_snapshot.py --mode regression— greenopenspec validate --specs --strict— 21/21 passedpyproject.toml+uv.lockregenerated for v1.5.0(匿名) 0sflicker is gone from the events panelTag will be cut on the merge commit after explicit approval.
Generated with Claude Code