Skip to content

TigerPASS: require a signed VALID verdict to activate + lean key modal - #95

Merged
WebTigers merged 1 commit into
mainfrom
fix/tigerpass-verify-and-modal
Aug 2, 2026
Merged

TigerPASS: require a signed VALID verdict to activate + lean key modal#95
WebTigers merged 1 commit into
mainfrom
fix/tigerpass-verify-and-modal

Conversation

@WebTigers

Copy link
Copy Markdown
Owner

Three fixes from live TigerPASS testing.

🔒 Activation requires a positive, signed verdict (the real fix)

activatePass refused only a definitive lapsed and accepted unknown — the ongoing nag-never-disable fail-open. So a well-formed but unprovable key (or an authority that can't cryptographically prove entitlement — e.g. the unsigned "always valid" reply the dev stub returned) would unlock the whole premium shelf. Pasting any UUID activated instantly.

Now activation is strict: only a reached-home, signature-verified valid unlocks; unknown/lapsed are refused and the key forgotten. This is deliberately stricter than the ongoing gate — fail-open still keeps an already-active install running through an authority outage (renewal ≠ first activation).

Verified live: a random UUID against the real authority now scores lapsedrefused (was: unlocked).

🧾 The "Get TigerPASS" modal is now a lean key modal

Replaced the two-phase sales pitch (plan cards + feature shelf) with one modal: a Get My Key → button that opens the seller's checkout, and a paste-your-key field that activates. Pricing + value prop live on the checkout page, not the modal.

Tests

Three regression cases inject the authority transport: a trusted valid unlocks; valid:false is refused; an unsigned valid:true with a pinned key is refused (unknown) — the exact hole. New system.pass.unverified message.

Companion changes (not in this repo): the buyer now points at the real /shop/authority with the vendor public key pinned (was the unsigned always-valid /pass-authority stub, now retired), and TigerShop's checkout shows the price + "Cancel anytime."

🤖 Generated with Claude Code

Security: activatePass previously refused only a definitive `lapsed` and accepted
`unknown` (the ongoing nag-never-disable fail-open), so a well-formed but unprovable
key could unlock the premium shelf. Activation is now strict — only a reached-home,
signature-verified `valid` unlocks; `unknown`/`lapsed` are refused and the key is
forgotten. (Fail-open still governs ONGOING operation: an already-active install keeps
running through an authority outage — that's renewal, not first activation.)

UX: the "Get TigerPASS" modal is now a lean key modal — a "Get My Key →" button that
opens the seller's checkout + a paste-key field that activates. The sales pitch/pricing
lives on the checkout page, not the modal.

Adds regression tests (inject the authority transport): a trusted valid unlocks; a
valid=false is refused; an UNSIGNED valid=true with a pinned key is refused (unknown) —
the exact hole the always-say-yes stub exposed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@WebTigers
WebTigers merged commit a4c7b5e into main Aug 2, 2026
12 checks passed
@WebTigers
WebTigers deleted the fix/tigerpass-verify-and-modal branch August 2, 2026 18:24
WebTigers added a commit that referenced this pull request Aug 2, 2026
…faults (#97)

Version bump + CHANGELOG. Ships since 0.47.0-beta: activation now requires a signed
VALID verdict (#95, the security fix) + the lean key modal, and the WebTigers production
pass authority + pinned public key as core.ini defaults (#96).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant