hass.tibber_prices/custom_components/tibber_prices
Julian Pawlowski ebcb9cfe77 fix(interval_pool): rebuild index after dead interval cleanup without empty groups
Cherry-pick of v0.30.1 hotfix (ec3bc9f). When _cleanup_dead_intervals
compacted group lists but no groups became fully empty, the index retained
stale interval_index values pointing past compacted list ends, causing
IndexError in _get_cached_intervals.

Now rebuilds the index whenever dead intervals are removed, even if no
groups are deleted.

Includes regression test for Issue #118 and updated touch operation tests
to reflect that GC now runs immediately after touch-only paths.

Closes #118

Impact: Eliminates IndexError crash for users with brand-new Tibber accounts
that have limited price history, where partial group compaction was most likely.
2026-04-17 12:00:37 +00:00
..
api fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
binary_sensor refactor(attributes): streamline phase type retrieval and attribute building 2026-04-17 08:52:17 +00:00
brand feat(brand): update dark icons for improved visual consistency 2026-04-09 19:04:26 +00:00
config_flow_handlers refactor(repairs): simplify currency mode change notification to one-shot 2026-04-15 10:00:59 +00:00
coordinator refactor(repairs): simplify currency mode change notification to one-shot 2026-04-15 10:00:59 +00:00
custom_translations refactor(translations): update terminology for previous interval price ranks 2026-04-15 10:43:29 +00:00
entity_utils fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
interval_pool fix(interval_pool): rebuild index after dead interval cleanup without empty groups 2026-04-17 12:00:37 +00:00
number fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
sensor refactor(attributes): streamline phase type retrieval and attribute building 2026-04-17 08:52:17 +00:00
services fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
switch fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
translations refactor(translations): update terminology for previous interval price ranks 2026-04-15 10:43:29 +00:00
utils fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
__init__.py refactor(repairs): simplify currency mode change notification to one-shot 2026-04-15 10:00:59 +00:00
config_flow.py fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
const.py refactor(repairs): simplify currency mode change notification to one-shot 2026-04-15 10:00:59 +00:00
data.py feat(interval-pool): add intelligent interval caching and memory optimization 2025-11-25 20:44:39 +00:00
diagnostics.py fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
entity.py fix(lint): apply Python 3.14 ruff rules and update HA minimum version 2026-04-11 10:56:34 +00:00
icons.json chore(style): reformat JSON config files from 4-space to 2-space indent 2026-04-12 14:15:04 +00:00
manifest.json chore: bump version 2026-04-14 20:42:08 +00:00
migrations.py fix(services): use injected now in resolve_search_range day offset 2026-04-14 19:33:24 +00:00
services.yaml feat(translations): enhance price trend change descriptions and usage tips 2026-04-12 19:55:57 +00:00