Repository navigation
Plans per project with a paywall page, live-fix limit on Free, and genclass 0.3.5 (numbered menus, profile/upgrade, Free upsell, suggestions to your agent) - #224
Conversation
…ects), and 100 live fixes a month on Free, then observe only billing/plans.json version 4. Each app has its own plan: a per-project Stripe subscription (quantity 1, its metadata naming the project) is written to that project by the webhook, which never cancels or refunds another project's subscription; a second live one for the same project is reported to the owner. Free covers an account's first 3 projects; a fourth is created and locked until it has a plan. An account subscription from before keeps covering every app; GenClass's Team grants are copied to every existing app (migration 0016), other grants stay account-wide. Forwarding, export and funnels follow the project's plan. A paid project cannot be deleted while it bills. Ingest's reply carries x-genclass-observe once a project on Free has fixed 100 problems live this month (read from the daily counters); stats carry the usage and the project's plan page. New page /account/billing?project=<id>. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, Try for free small), Free chosen there is recorded, new web apps go to it first Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ter each command, the whole suggest list to a coding agent, and the command installs itself Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…pe fix in the GitHub connect retry Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s room Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GenClass runtime review2 findings in this pull request's tests at
Reply The race report, test by testRace report2 signatures in 2 tests, 2 reproducible (flagged in 2 or more seeds of the same test) · 19 files read · mode observe
[chromium] search.spec.ts > search > buggy page: results of the last query2 seeds (1, 2) · 1 signature · chaos: latency 0–600 ms, reorder Witnesses (facts measured without the model)
search.spec.ts > search > buggy page: results of the last query5 seeds (1, 2, 3, 4, 5) · 1 signature · chaos: latency 0–600 ms, reorder Witnesses (facts measured without the model)
3 tests with nothing flagged
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 |
…m paying (kept, sent to the owner); no back-to-terminal text; the website opens an unchosen app's plan page first Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Merged main in (#223 and #225). The owner chose this PR's billing model (each app its own Team subscription, its own plan page, Free's 100 live fixes, the reason popup) over #225's account-wide app quantity. Kept from #225: the "Add promotion code" field at Checkout, the larger dashboard with the menu always open, the team wording ("members come with Team"). Left out: Since the first push: the plan page's "Try for free (limited)" is a small link that opens "What's stopping you from paying?" (a reason is required; kept in Tests: telemetry-worker 786, packages/cli 184, runtime install + readme 157, strict tsc clean. 🤖 Generated with Claude Code |
Owner requests, 2026-11-12: plans per project ($15 a project a month, 3 free projects, grants on every project they have), a page that opens to choose the plan for the project (Team big, a very small "Try for free (limited)"), usage limits on live fixes that put GenClass on observe, and for onboarding:
genclassworks as a command, numbered choices, a profile command to upgrade, a Free notice after every command, and the whole suggest list handed to Claude/Codex/Cursor.Collector (
telemetry-worker)billing/plans.jsonv4: Team is per project (per_project,$15 / project / month, whole team included); Free covers 3 projects and 100 live fixes a month per project (limits.live_fixes_per_month).0016_project_plans.sql: plan, subscription and grant columns onprojects,plan_chosen; account grants copied onto their projects. Apply before deploying:npx --yes wrangler@4 d1 migrations apply genclass-dashboard --remote.genclass_project), webhookapplyProjectSubscription; account subscriptions from before keep covering every app.GET /account/billing?project=<id>: "Choose a plan for ", Team large with a big Start button, "Try for free (limited)" very small (none for a 4th app).POST /api/billing/projects/<id>/freerecords the choice. New apps made on the website go to this page first;?plan=teamopens the first app on Free.x-genclass-observe: live-fix-limit(the runtime side is a separate branch, pending the first-load budget OK). Dashboard stats and/api/cli/appcarryusage,plan,plan_url./api/cli/overview: each app'splan,needs_plan,plan_chosen,plan_url; the offer is per project.clientId ?? "").genclass 0.3.5 (
packages/cli)genclassinstalls itself on a terminal run through npx (npm install -g genclass, said on screen;GENCLASS_NO_INSTALL=1turns it off).genclass profile(account, each app's plan, numbered: upgrade, billing, sign out) andgenclass upgrade.genclass upgrade.genclass suggestends with numbered choices to start Claude Code / Codex / Cursor / Gemini with the whole list, or copy/print it.dashboardshows live fixes this month and an "Observing only" banner past the limit.Tests
telemetry-worker: 784 pass; stricttscclean.packages/cli: 184 pass (build 0.3.5).packages/runtimeinstall + readme: 157 pass.Not done here: deploying (migration, then the worker), publishing 0.3.5, the runtime observe switch (separate branch, needs the ~0.3 KB first-load OK), site /pricing copy.
🤖 Generated with Claude Code