You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f288b75
Browse filesBrowse the repository at this point in the historyBrowse files
K2GO-395 feat(networkpolicy): enforce cost gate in ContentAdmission; bank-before-gate for ZIM
Resolves ADR-395 sec.10. Gating only the UI commit point was not defensive: the
wishlist is a durable queue drained by an ungated background pass, so banked
orders (incl. the wizard-bank path) could download on metered data with no consent.
- New NetworkCostAdmission (networkpolicy/data): the single classify+consent+policy
decision, used by both the UI gate and the headless admission.
- ContentAdmission.canStart now defers on metered-without-consent, so the ZIM,
Books and Kolibri drains all HOLD a banked order -- one choke, three streams, no
per-provisioner edit, no new persistent state (a held order stays banked).
- startZimDownload banks the wishlist BEFORE the gate and gates only the drain, so
a declined/offline order is queued, not lost; ZimConfirmFragment calls it directly.
- MeteredNetworkObserver.start is now truly idempotent (started guard).
Fixes the two-pass review findings (cart loss on offline/decline; false idempotent
claim). Build + networkpolicy unit tests green.
0 commit comments