Skip to content

LISTENER-05 — Weekly Free listening quota and collaboration credits #214

Description

@nicoechaniz

Product decision — 2026-08-08

The former recurring two-hour daily schedule is replaced by a simpler account-bound usage quota.

Canonical policy

  • Every registered ordinary-Free account receives 3 hours per personal cycle.
  • The stable cycle anchor is the first server-authorized playback; cycles then repeat every exact 7 days from that anchor.
  • Base time resets to 3 hours at each boundary and never rolls over.
  • The separate 30-minute welcome listen and all schedule/time-zone selection are retired.
  • Server time is authoritative. Page views and idle preparation do not start or consume a cycle.
  • Intro and Beacon playback consume the same quota.
  • Up to two devices remain supported; overlapping playback is charged once per account wall-clock second.
  • Stop/idle ends metering; abandoned playback is bounded by lease expiry.
  • Active canonical membership and the operator Free For All override remain non-metered. Founder price eligibility alone authorizes nothing.
  • Future collaboration quests may add auditable, idempotent time grants with optional expiry and no PII; no quest engine is part of this slice.

Migration

  • Add forward-only quota/grant persistence and a policy marker.
  • Keep applied migrations and historical rows immutable, but do not maintain runtime compatibility with discarded pre-release policies.
  • Daily-schedule and welcome APIs are removed and return 404; old clients/binaries are unsupported.
  • Existing accounts receive a fresh first cycle on their first post-cutover playback; prior use is not charged retroactively.
  • Recovery is stop/kill-switch and roll-forward repair; do not restore the retired policy.

Acceptance

  • Atomic PostgreSQL accounting and fixed seven-day cadence from the first-play anchor.
  • Exact 3-hour exhaustion, no base rollover and server-authoritative reset.
  • One/two-device overlap, gaps, reconnect, eviction, crash/TTL and concurrent first-play coverage.
  • No cycle/charge for GET, idle preparation, membership or FFA.
  • Intro→Beacon is one continuous metered session without duplicate charge.
  • Grants are bounded, auditable, idempotent, expiry-aware and cannot be client-created.
  • UI shows server-synchronized remaining time/countdown and removes all daily schedule/welcome controls.
  • No audio parameter, event runtime, LiveKit, payment or Proyección del Mito change.
  • Exact weekly runtime deployed to isolated Listener with provenance, migration and smoke evidence.

Physical countdown/reset acceptance remains tracked in #216. Full release acceptance remains in #201.

Related: #216, #198, #201 and draft PR #203.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions