Skip to content

genclass 0.3.8: team members see the team's Pro, the browser stays shut without a terminal, setup never fakes success, 58 columns - #239

Merged
MeharPro merged 1 commit into
mainfrom
fix/cli-038-walk
Nov 13, 2026
Merged

MeharPro merged 1 commit into
mainfrom
fix/cli-038-walk

Conversation

@MeharPro

Copy link
Copy Markdown
Contributor

Fixes for what a signed-in walk of the published genclass 0.3.7 found. The walk ran against a local server with a fresh account, a team member and a GenClass grant.

Team members

  • A member's seat is one the team owner pays for (Pro is per developer), but plan, profile and team showed them as Free.
  • They now show the team's Pro: whose team it is, the team's apps, history and what the plan includes.
  • team invite now says invites come from the team's owner.
  • Server: team_plan in /api/cli/account now carries owner, apps, used_apps, history_days and includes, and the overview's plan carries source.

The browser

  • It opens only when someone is at a terminal, and never with --no-browser. dashboard and apps new used to drop that flag.

Setup after a network error

  • A request made right after a package install now retries once if its connection was closed in the meantime.
  • If the app still doesn't reach the account, the runtime step says so and setup exits 1, instead of finishing "done".
  • The advice is now to run the command again, not to sign in again.

58 columns

  • help is laid out for the window: side by side when wide, stacked when narrow.
  • whoami stacks a long app row.
  • The setup's notes wrap, under genclass only; genclass-runtime's own output is unchanged.
  • A wrong option to login, whoami or logout is now one line.
  • Without a terminal, the width follows COLUMNS.

Smaller fixes

  • A grant is never told to add seats.
  • An app the account's plan covers no longer holds up setup --yes or status; Continue is offered once, not required.
  • upgrade --json without Pro points at the checkout instead of at itself.
  • profile --json now has the trial and the price.
  • The price is written one way everywhere: $15 / developer / month.

genclass is now 0.3.8, with changelog entries for it and for the runtime CLI.

Checks

  • genclass: 204 tests pass.
  • Runtime: 157 install and readme tests pass.
  • Collector: all 874 tests pass; 4 timing-sensitive ones failed under heavy load on the Mac and passed when rerun alone.
  • The strict tsc is clean.
  • The built 0.3.8 fits 58 columns for help and the option errors.

🤖 Generated with Claude Code

…he browser, setup, 58 columns)

- A team's member sees the team's Pro, a seat its owner pays for (plan, profile, team; team invite says invites are
  the owner's). The server's /api/cli/account team_plan now says whose team, its apps, history and what it
  includes; the overview's plan has its source.
- The browser opens only for someone at a terminal, and never with --no-browser (dashboard and apps new kept it).
- A request after a package install gets one retry on a connection closed meanwhile; a setup whose app never
  reached the account says so and ends with exit code 1; a network error says to run it again, not to sign in.
- help is laid out for the window; whoami stacks a long app row; the setup's notes wrap under genclass (58
  columns); a wrong option to login, whoami or logout is one line. Width follows COLUMNS without a terminal.
- A grant is never told to add seats, and a covered app's plan page never holds up setup or status;
  upgrade --json points at the checkout; profile --json has the trial and price; one price wording.

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 159e03b · 2 reproducible · 5 tests read

# Status Finding Test Seen
1 New Witness, overwrote-newer · GET /api/search [chromium] search.spec.ts > search > buggy page: results of the last query 2 of 2 seeds, reproducible
2 New 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.09s 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.25s 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

@MeharPro
MeharPro merged commit de981c1 into main Nov 13, 2026
16 checks passed
@MeharPro
MeharPro deleted the fix/cli-038-walk branch November 13, 2026 19:19
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