Skip to content

v0.5.3 - NEAR detection + anchor alignment

Latest

Choose a tag to compare

@empyfi empyfi released this 24 Jun 08:14

Measurement-correctness release on top of v0.5.2. Two items
from the 2026-06-23 field-test (own and FCC-Extender 0.2 author Oberhesses CSV + log shared
via forum). No new feature surface, no config keys added, no
C-binding additions.

Added

  • NEAR result label for the intra-TP channel-share case.
    When a bypass zap targets a service whose transponder is
    already locked by a sibling pool slot (different service id
    on the same MUX), pool.lookup correctly misses at the
    service level but eDVBResourceManager channel-shares at
    the transponder level - the demod is already there, so the
    zap lands in the ~100-300 ms PMT-switch regime instead of
    the ~700-900 ms cold-tune regime. Previously these zaps were
    labelled EXT and dragged the EXT-bucket median artificially
    low; they now report as NEAR with their own OSD bucket-
    colour (teal #80ffc0). Wrapper-MISS paths get the same
    upgrade when a TP-share is available. Adds pool.tp_match(ref)
    as the transponder-level partner of the existing pool.lookup
    and a _tp_key helper alongside the existing _key in
    predictor.py.

Changed

  • Wrapper-path zap timing now anchors on evStart (same as
    the bypass path) instead of at the top of the wrapper
    closure. The wrapper sets _zap_attr / _zap_hit up front
    so the metadata is known by the time playService dispatches
    evStart; the timing anchor itself is set by
    _on_nav_event(evStart) for every path. Net effect:
    zapUp/zapDown HIT and ext HIT measurements now cover
    the same evStart -> evTunedIn span, eliminating the ~50 ms
    measurement gap where wrapper-HIT looked artificially slower
    than bypass-HIT in v0.5.2.

Field-test grounding

Oberhesses CSV from v0.5.2 contained two ext EXT rows at 154
and 153 ms - way too fast for cross-transponder cold tunes
(~700-900 ms hardware-bound). The corresponding LOOKUP
blocks in his log showed that a sibling slot was armed on the
same transponder as the target service (ZDF on 3F3 for the
ZDF Neo zap, ZDF Neo on 3F3 for the ZDF zap). pool.lookup
correctly missed at the service level but eDVBResourceManager
channel-shared at the transponder. v0.5.3 labels these as
NEAR; removing them from the EXT bucket makes Oberhesses
field-test factor (was 2x) line up with the on-hardware factor
(~5x), and removing the wrapper pre-work measurement gap makes
his wrapper-HIT vs bypass-HIT comparison directly meaningful.

Test suite: 144 -> 156 (12 new cases: pool.tp_match positive
and negative, NEAR classification on evStart, HIT priority
over NEAR, wrapper-MISS NEAR upgrade).