feature: guest/demo mode — unauthenticated trust scoring with transient session #28

Closed
opened 2026-04-08 22:49:12 -07:00 by pyr0ball · 0 comments
Owner

Concept

Allow unauthenticated users to run trust scores on eBay listings at menagerie.circuitforge.tech/snipe without logging in. Session is transient — no history saved, no account required.

Revenue angle

Affiliate links on flagged listings still fire. Guest users get the full trust score on any listing they paste in; they just cannot save history or set alerts.

Scope decisions (mirrors kiwi#72)

  • Guest token: short-lived UUID cookie (snipe_guest); no JWT/Heimdall
  • TTL: 24h inactivity, then wiped
  • Caddy: remove @no_session gate for /snipe*; pass guest header to FastAPI
  • Tier: guest = Free tier (trust score only, no alerts, no bulk scan)
  • Upgrade prompt: after history/alert attempt → "Create a free account to save your search history"

What does NOT persist for guests

  • Search/scan history
  • Saved listings or watchlist
  • Alert preferences

Implementation notes

  • Same guest middleware pattern as kiwi#72 — synthetic guest:<uuid> user_id, Free tier ceiling
  • Ship alongside kiwi#72 so Caddy changes land in one pass
  • kiwi#72 — same pattern, coordinate Caddy changes
## Concept Allow unauthenticated users to run trust scores on eBay listings at `menagerie.circuitforge.tech/snipe` without logging in. Session is transient — no history saved, no account required. ## Revenue angle Affiliate links on flagged listings still fire. Guest users get the full trust score on any listing they paste in; they just cannot save history or set alerts. ## Scope decisions (mirrors kiwi#72) - **Guest token**: short-lived UUID cookie (`snipe_guest`); no JWT/Heimdall - **TTL**: 24h inactivity, then wiped - **Caddy**: remove `@no_session` gate for `/snipe*`; pass guest header to FastAPI - **Tier**: guest = Free tier (trust score only, no alerts, no bulk scan) - **Upgrade prompt**: after history/alert attempt → "Create a free account to save your search history" ## What does NOT persist for guests - Search/scan history - Saved listings or watchlist - Alert preferences ## Implementation notes - Same guest middleware pattern as kiwi#72 — synthetic `guest:<uuid>` user_id, Free tier ceiling - Ship alongside kiwi#72 so Caddy changes land in one pass ## Related - kiwi#72 — same pattern, coordinate Caddy changes
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Circuit-Forge/snipe#28
No description provided.