Skip to content

Pro (was Team) with a 3-day trial; Free limited to the totals and one suggestion; suggest keeps its answer and writes ideas and website designs; genclass 0.3.6 - #228

Merged
MeharPro merged 5 commits into
mainfrom
feat/pro-paywall
Nov 13, 2026
Merged

MeharPro merged 5 commits into
mainfrom
feat/pro-paywall

Conversation

@MeharPro

Copy link
Copy Markdown
Contributor

The owner's requests, 2026-11-12: paywall suggest (Free sees one and "X more"), have the model work harder in the background and keep it for paying users, show Free the same answer every run, make the CLI paid with "limited access, upgrade to Pro" and a link, limit Free fully, 3-day Pro trials, and website design suggestions inspired by real sites with a full prompt for Claude, hidden on Free. Decisions taken with the owner: rename Team to Pro; Free keeps setup, the totals and one suggestion (CLI and website); the model's extra suggestions are shown on Pro as the model's ideas, never as measured; the trial takes a card up front, once per account.

Plans (billing/plans.json)

  • team is named Pro, trial_days: 3; Free shows 1 suggestion; new entitlements problems and ask (Free false; a plan file without them gives them).

Collector

  • Free sees the totals only: stripProblems on the browser stats, /api/cli/app and private links (locked.problems { plan, upgrade_url, trial_days, price }); the dashboard page shows one banner with "Start your 3-day free trial" instead of the lists; /api/cli/ask is 403 locked on Free.
  • Suggest: the digest has about (site title and description); the model also writes up to 20 ideas and up to 4 website designs (each a real site, checked to answer over HTTPS, and a complete prompt); the answer is kept per account and app (suggest_results, migration 0019); Free gets its kept answer again (cached_at), the first item and counts only; Pro gets everything.
  • Trial: trialFor (no past subscription in D1 or on the Stripe customer) → Checkout trial_period_days: 3; the plan page says "Start your 3-day free trial" and the price after it; the CLI offer carries trial_days. Promotion codes stay on.
  • Account deletion removes suggest_results. README, PRIVACY.md and AGENTS.md rules 11 and 12 updated.

genclass 0.3.6

  • The Pro box (trial, price, genclass upgrade, link) on problems, events, report, fix, ask, the dashboard (totals stay) and refusals.
  • Suggest on Free: the first suggestion and "N more: X from your checks, Y ideas from the model, Z website designs", the same plan again with its date; on Pro: ideas (marked not measured) and website designs with "Inspired by " and the full prompt, which the hand-off menu copies in one key. Lines fit 58 columns.

Checked

  • Plan page and the Free dashboard banner by hand on a local collector (test account).
  • Tests: collector 817 (13 new for Pro, the trial and Free's limits, plus one trial per account across open Checkouts, a reused page keeping its trial, and Free's stats never naming kinds), CLI 185, runtime install 157; strict tsc clean.
  • Fixed from the tests: a reused Checkout page now keeps only the same trial; two projects checked out at once give one trial; Free's stats drop the agent's findings and log and the checks by kind; the pricing page's trial button without an app goes to the new app form.
  • Known edge: the plan page decides the trial from GenClass's records only; an account whose Stripe customer had a subscription GenClass never recorded sees the trial offered and Checkout gives none.

After merge (on the owner's go)

  1. npx --yes wrangler@4 d1 migrations apply genclass-dashboard --remote (0019), then deploy the collector.
  2. Rename the live Stripe product genclass_team to "GenClass Pro" (description per project, unit label project).
  3. genclass-site: lib bump, Pro and trial copy, deploy.
  4. Tag cli-v0.3.6.

🤖 Generated with Claude Code

MeharPro and others added 4 commits November 12, 2026 18:57
… and one suggestion, suggest keeps its answer with the model's ideas and website designs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rial, price, upgrade); Pro sees the model's ideas and website designs with full prompts; suggest's lines fit 58 columns

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nswer and writes ideas and designs (rule 11, PRIVACY), ask and the problem lists are Pro's (rule 12)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ind; one trial per account across open Checkouts, a reused page keeps its trial; the trial button without an app goes to the new app form; tests for Pro, the trial, Free's limits and suggest's kept answers, ideas and designs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@genclass-dev

genclass-dev Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

GenClass runtime review

2 findings in this pull request's tests at 058c73d · 2 reproducible · 5 tests read

# Status Finding Test Seen
1 Still flagged Witness, overwrote-newer · GET /api/search [chromium] search.spec.ts > search > buggy page: results of the last query 2 of 2 seeds, reproducible
2 Still flagged Witness, overwrote-newer · GET /api/search search.spec.ts > search > buggy page: results of the last query 5 of 5 seeds, reproducible

Reply @genclass-dev replay 1 for the steps to reproduce a finding, or @genclass-dev fix 1 for a brief a coding agent can work from.

The race report, test by test

Race report

2 signatures in 2 tests, 2 reproducible (flagged in 2 or more seeds of the same test) · 19 files read · mode observe

signatures reproducible
Duplicate submits 0 0
Stale responses 0 0
Failing endpoints 0 0
Other detections 0 0
Witnesses (facts measured without the model) 2 2
[chromium] search.spec.ts > search > buggy page: results of the last query

2 seeds (1, 2) · 1 signature · chaos: latency 0–600 ms, reorder

Witnesses (facts measured without the model)

  • Reproducible: 2 of 2 seeds (1, 2) · GET /api/search · witness:overwrote-newer

    The response of GET /api/search#​1 wrote search.results over what newer GET /api/search#​2, started 0.08s after GET /api/search#​1, had written (2 items ["re one", "re two"] → 2 items ["r one", "r two"]).

search.spec.ts > search > buggy page: results of the last query

5 seeds (1, 2, 3, 4, 5) · 1 signature · chaos: latency 0–600 ms, reorder

Witnesses (facts measured without the model)

  • Reproducible: 5 of 5 seeds (1, 2, 3, 4, 5) · GET /api/search · witness:overwrote-newer

    The response of GET /api/search#​1 wrote search.results over what newer GET /api/search#​4, started 0.24s after GET /api/search#​1, had written (2 items ["reac one", "reac two"] → 2 items ["r one", "r two"]).

3 tests with nothing flagged
  • [chromium] search.spec.ts > search > fixed page: results of the last query (2 seeds: 1, 2)
  • search.spec.ts > search > fixed page: results of the last query (5 seeds: 1, 2, 3, 4, 5)
  • search.spec.ts > search > latency only > buggy page, latency only: results of the last query (5 seeds: 1, 2, 3, 4, 5)

Lines under "Witnesses (facts measured without the model)" are happens-before facts the runtime measured in the page without the model, one per signature (witness kind, operation): overwrote-newer, a response wrote a field over what a newer request or the user had written since the request started; identical-in-flight, two identical requests in flight together from separate user actions. They carry no confidence: a fact is listed when it happened. Reproducible: seen in 2 or more seeds of the same test. Whether a fact is a bug is for you to decide (some overwrites are intended; many are repaired a moment later).


genclass-dev[bot] read 19 race files from the artifacts genclass-races-unmodified, genclass-races of this pull request's workflow run, never your source code. What the lines mean · Setup and settings · reply @genclass-dev help

… trial (no trial on a switch, Stripe's bounds, the trial in the idempotency key, genclass_trial_days); the trial decision stays trialFor plus one per account across open Checkouts, now from the customer's subscriptions checkCustomer already read; #227's test kept

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MeharPro
MeharPro merged commit e129fe0 into main Nov 13, 2026
11 checks passed
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