Repository navigation
Releases: avramovic/gumpress
Releases · avramovic/gumpress
Release list
v2.0.1
Fixed: a rejected activation could deactivate every legitimate site on the license
max_uses (seat limiting) had a serious flaw against Gumroad direct: a
rejected activation attempt still counted against Gumroad's uses
field, because the verify call sent increment_uses_count=true before any
local seat check ran. Since uses is global, never decrements, and carries
no site identity, a single blocked pirate attempt — or an innocent clone, a
restored backup, a search-replace'd domain — could push the counter past
max_uses and silently deactivate every genuinely-activated site on its
next re-check.
What changed
- Probe before claiming. Against Gumroad direct, whenever the local
max_usescap could actually reject the call, GumPress now sends a
non-incrementing check first (increment_uses_count=false), and only
follows up with the real, incrementing call if there's room. A rejected
site no longer touches the counter at all. A customlicense_check_url
is unaffected — it already enforces its own seat model. - A claimed seat is never revoked later. Each site now remembers its
own position among the license's activations at the moment it claimed a
seat, and is judged against that position instead of the live (and
only ever growing)usescount. A rejected third site, a clone, or
another site still running an older GumPress version can no longer take
a seat away from a site that legitimately holds one.
Upgrade notes
- Drop-in replacement — no config changes required, no new options.
- No retroactive amnesty: a license that was already over its
max_useslimit before upgrading to 2.0.1 stays blocked (there's no
reliable way to tell a poisoned counter apart from a genuine over-limit
activation). See Seat limiting → Recovering an already-over-limit
license
for options: temporarily raisemax_uses, switchmax_uses_policyto
'warn', or resetusesfrom the Gumroad seller side.
Full Changelog: v2.0.0...v2.0.1