Releases: teknikqa/gaggle
Releases · teknikqa/gaggle
Release list
v0.1.1-beta.1
Bug Fixes
- allow googleapis/release-please-action in the Actions selected-actions allowlist (#23) (588999c)
- bump cryptography to 50.0.0, closing GHSA-g6cj-pr64-35w5 (#10) (170b12d)
- checkout before dorny/paths-filter so push events don't hit startup-less failure (#19) (97882ed)
- keep only the functional Edit ask-gate on .claude/** (#21) (4edf25e)
- mint a scoped GitHub App token for release-please PR creation (#24) (f1ba64a)
v0.1.0-beta.1
Escaped defects closed this release: 0.
First-release validation (docs/releasing.md gate)
- Account: maintainer's own AGL gas account (basic/non-smart meter).
- Billing period reconciled: 16 April 2026 – 11 June 2026.
- Compared: gaggle's imported
gaggle:consumption_<contract>/
gaggle:cost_<contract>totals for that period against the real AGL
bill / app for the same period. - Result: matched within the API's own rounding.
- Checked: 30 July 2026.
- Scope note: this validates gaggle's basic-meter import path against one
real account. Broader validation (a second account, or a smart-metered
account) remains opportunistic — seeROADMAP.md.
Added
- Project bootstrapped as a gas-only sibling of
haggle(electricity), ported from
hagglecommit04ebc21b53315ec9b176b71c2abfbe69d80ce8d7: Auth0 PKCE auth
flow, refresh-token rotation, TLS Trust-On-First-Use pinning, and contract
discovery (gasContractfiltering). - Solar and Time-of-Use code paths removed (not applicable to gas).
- Real gas usage data implemented, confirmed against a live AGL gas
account capture (Phase 0, 2026-07-30 — seedocs/gas-api.md):
AglClient.async_get_gas_usage_basiccalls the confirmed real endpoint
(GET /v2/usage/basic/Gas/{contractNumber}), which turned out to be
fundamentally different from the sibling electricity integration's
interval-fetch shape — a basic (non-smart) gas meter has no interval or
daily data at all. - New sensors: current billing-period usage/cost (AGL's own estimate),
bill projection, cumulative usage/cost, unit rate, supply charge (7
total). Unit rate reads the highest tier of AGL's confirmed
tiered/blockc/MJgas pricing as a documented simplification. gaggle:consumption_<contract>/gaggle:cost_<contract>Energy
dashboard statistics now import real data: one sparse point per
completed billing period (~bimonthly), not hourly/daily — there's no
underlying interval data for a basic gas meter to build a smoother chart
from. Baseline continuity is preserved across polls even as AGL's
returned window of past periods ages older periods out (regression test
against the real HA recorder, not mocked).- Coordinator rewritten: replaced the sibling electricity integration's
per-day throttled backfill/rewindow loop with a single usage-summary
call per poll (AGL returns the whole current-period-plus-history window
in one shot for this meter type). - Own brand assets (
custom_components/gaggle/brand/): a "G" mark with a
blue gas-flame glyph and agagglewordmark, light and dark variants —
replacing placeholder PNGs that were byte-identical tohaggle's H+bolt
mark.
Fixed
- Config flow now aborts with a clear
no_gas_contractreason when an AGL
account has no gas contract (or only electricity contracts), instead of
silently creating a config entry withcontract_number=""that "succeeds"
at setup and then fails every subsequent poll.
Removed
- The per-day backfill/rewindow machinery,
IntervalReading/DailyReading/
BillPeriodmodels, andparse_interval_readings/parse_daily_readings/
parse_bill_periodparsers — all modeled a shape that turned out not to
apply to gas.GasUsageSummary/GasPastPeriodandparse_gas_usage_basic
replace them with the confirmed real shape.