Skip to content

The open-source setup is two commands: init --agent, and the docs, the MCP server and /start/open-source say so - #131

Draft
MeharPro wants to merge 14 commits into
mainfrom
claude/exciting-bohr-yivjyo
Draft

MeharPro wants to merge 14 commits into
mainfrom
claude/exciting-bohr-yivjyo

Conversation

@MeharPro

@MeharPro MeharPro commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

What

A developer who wants only the open-source parts (no account, no token, nothing sent) had three stories that disagreed: the README quick start (which creates a dashboard token by default), a nine-step hand-edit prompt on genclass.dev/start/open-source, and an agent link that init could not write. Now it is two commands, everywhere:

npx @genclass/runtime@beta init --no-telemetry --agent   # the runtime (observe), the dev-only overlay and agent link; no token
npx -y @genclass/mcp@0.2.1 init                           # the MCP server and the genclass skill for Claude Code
  • init --agent (bin/lib/plan.mjs, edit.mjs, init.mjs): writes the dev-only agent link next to the devtools line, the same shape for every framework (if (<dev>) import("@genclass/runtime/agent").then((a) => a.connectAgent(genclass)); one if block in the files created for Next.js; plain HTML gets a module script after the tag that loads dist/agent.js from the script URL's directory on localhost and connects GenClass.runtime). remove recognises it, wrapped by a formatter or not, and refuses an edited one. --agent --no-devtools still binds the runtime. Tests: test/install/cli.test.ts "init --agent" (Vite, Next 16, Nuxt 4, Astro, plain HTML, formatter-wrapped removal).
  • Docs: an "Open source only, no account" block in both READMEs' quick start, INSTALL.md "How do I set up the open-source parts only?" and the --agent, --sync, --no-network rows, a FAQ entry, AGENT.md, the MCP README; the MCP server's init and genclass_setup now lead with the one command; INSTALL.md is on the current line (beta.5, 0.2.3); docs/adoption/listings/skills.md says where the genclass skill gets listed.
  • genclass.dev/start/open-source (telemetry-worker/src/pages.ts): the prompt is the two commands plus the dev-server check (4 steps, 591 words; was 8 steps, 853), every choice is an init flag, and the page says what the developer will see. The site's embedded copy: genclass-dev/genclass-site PR 15.

Checks

  • npm run typecheck -w @genclass/runtime and npm run build -w @genclass/runtime pass
  • unit tests pass in packages/runtime (1270 passed, 15 skipped), telemetry-worker (361) and packages/mcp (152; INSTALL.md and FAQ.md joined the pinned-launcher sync list)
  • no packages/runtime/test/review-*.test.ts was edited
  • no model-visible text changed (situation-v2.3); nothing under packages/runtime/src changed
  • packages/runtime/CHANGELOG.md "Unreleased (0.3.0-beta.6)" has the entry
  • a correct app is not made worse: the agent link is dev-only and inert off loopback hosts, as before; observe is unchanged
  • sim/ and demos/ authors did not read each other's code
  • no dependency change

Notes for the reviewer

Sequencing. The published beta CLI (0.3.0-beta.4 and beta.5) rejects --agent (unknown option), so the README and the site must not name it before 0.3.0-beta.6 is on npm. Plan: push the pending v0.3.0-beta.5 tag, run its post-publish pins, then merge this PR with the version bumped to 0.3.0-beta.6 and tag it. Draft until then.

Not run: the browser model suite, the install suite's real-framework builds (test/install/frameworks.sh), anything on Azure. A fresh-eyes review (five walkthroughs, two judges) and an adversarial review of this diff ran in the session; the latter's findings, if any, will be pushed here.


Generated by Claude Code

🤖 Generated with Claude Code

…e MCP server's setup text and /start/open-source say so

init --agent adds the dev-only agent link next to the import it writes (every framework; one if block in the files
it creates for Next.js; plain HTML gets a module script after the tag that loads dist/agent.js from the script URL's
directory on localhost), and remove takes it out, wrapped by a formatter or not. The READMEs' quick start, INSTALL.md
("How do I set up the open-source parts only?"), the FAQ, AGENT.md, the MCP server's README and setup text, and the
start page's prompt and commands name the two commands (npx @genclass/runtime@beta init --no-telemetry --agent, then
npx -y @genclass/mcp@0.2.1 init) instead of a nine-step hand edit; every @genclass/mcp launcher stays pinned, with
INSTALL.md and FAQ.md added to the sync list.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fqwfq3CizvxvgyXp6wY8WR
… line, the script-tag agent link in AGENT.md, what you will see on /start/open-source, the skill's listings

- INSTALL.md names 0.3.0-beta.5 and 0.2.3, pins its script tags to beta.5 (SINKS.md too; beta.0 is inside the
  mode-raise advisory's range), gains the --sync and --no-network rows its help already prints, and says to reload a
  dev page once the MCP server runs.
- AGENT.md no longer says the script-tag build has no agent entry: init --agent writes the module script.
- README.md names @genclass/mcp 0.2.1; the worker's MCP_PKG follows.
- /start/open-source says what the developer will see (the Model ready line, the overlay, genclass_status).
- docs/adoption/listings/skills.md: where the genclass skill gets listed (skills.sh by installs, gh skill,
  cursor.directory, the curated lists) and what each needs; mcp.md points at it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fqwfq3CizvxvgyXp6wY8WR
…me; the CLI's MCP launcher is pinned; two wording fixes

From the adversarial review of the diff:
- agentUrl returns null when the script URL does not end in genclass.global(.min).js, so init --agent with such a
  --cdn writes no module script (it imported the runtime itself as a module, and connectAgent was undefined) and
  says so in a note; test in cli.test.ts.
- The runtime CLI's help and Next line name the MCP server's launcher pinned (bin/lib/version.mjs MCP_PKG, in the
  manifests sync), as every other copied command does; the CHANGELOG entry too.
- The READMEs say what the telemetry opt-out is for plain HTML and Astro; skills.md cites the MCP CHANGELOG's
  Unreleased entry for the licence field.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fqwfq3CizvxvgyXp6wY8WR
…ent entry for the READMEs' bare package URL; the prompt's webhook sink by name

From the adversarial review:
- A block form in remove's recogniser could match an empty if (...) {} window, so after a developer edited the
  agent line, a user's line below it could be taken out with it; a block now needs one of init's two calls.
- --cdn https://cdn.jsdelivr.net/npm/@genclass/runtime@<version> (the READMEs' script URL, with no file name)
  gets its dist/agent.js next to it; other file names still get a note instead of a module script.
- /start/open-source: the logs choice says --sink webhook:<url> (which init and the runtime handle, the endpoint
  kept out of what GenClass watches) instead of a hand-written sink; step 1 says what the plain-HTML and Astro
  forms are.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fqwfq3CizvxvgyXp6wY8WR

MeharPro commented Nov 2, 2026

Copy link
Copy Markdown
Contributor Author

CI note on 4eb75d7: the @genclass/sv e2e job failed once ("guard kit-ts": page.waitForFunction timed out after 20 s waiting for the runtime's fetch wrapper in the SvelteKit fixture) in run 41499482262, while the same job on the same commit passed in run 41499494158. This PR touches nothing under packages/sv (the diff is the runtime CLI's bin/lib, docs, the MCP server's setup text and the worker's start page), and the sv e2e installs the runtime through pnpm and loads it in Chromium against the network, so this is the harness's timing, not the change. Re-ran the failed job once; no fix to port.


Generated by Claude Code

claude and others added 7 commits November 2, 2026 18:24
…dule headers name the agent line and the fourth inline form; skills.md cross-references

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fqwfq3CizvxvgyXp6wY8WR
The adversarial review's last confirmed item: every command block named --agent as the setup that works today, while
npm's beta tag (0.3.0-beta.4, then beta.5) rejects the flag; the blocks now carry the version, and the merge is
tied to the 0.3.0-beta.6 release.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fqwfq3CizvxvgyXp6wY8WR
… documented flag

Owner decision 2026-11-02: the two commands are `npx @genclass/runtime@beta init --agent` and
`npx -y @genclass/mcp@0.2.1 init`, with the runtime's anonymous diagnostics on and the app's free dashboard link,
as with every init; `init --no-telemetry --agent` is the documented way to send nothing. Every surface that showed
`init --no-telemetry --agent` now shows `init --agent` and says what is sent: both READMEs, INSTALL.md, the FAQ,
the CLI's --agent help, the CHANGELOG, and the worker's /start/open-source (its prompt, lead, "What leaves your
network" and commands), with its tests. The MCP-side mentions (AGENT.md, the MCP README, tools.ts) already showed
the bare `init --agent` and are unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…e; the CHANGELOG heading names the release

The two-command setup (`init --agent`) ships in 0.3.0-beta.6, so the package version moves from 0.3.0-beta.5 to
0.3.0-beta.6 in `packages/runtime/package.json`, in `RUNTIME_VERSION` (`src/version.ts`; the release workflow checks
that the tag, package.json and this string agree, and `test/telemetry.test.ts` keeps the two equal) and in the root
`package-lock.json`'s `packages/runtime` workspace entry, edited by hand so the committed lockfile stays in sync
(`ONNXRUNTIME_NODE_INSTALL=skip npm ci --no-audit --no-fund` succeeds against it). The CHANGELOG heading
"Unreleased (0.3.0-beta.6)" becomes "0.3.0-beta.6 (2026-11-03)", the tag date assumed for the release; nothing in the
entry changes. No runtime code, no model-visible text.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…ipt-tag pins move from beta.5 to beta.6

The same pass commit b740e43 made for 0.3.0-beta.5, one release on. The shipped README, TELEMETRY.md and
INTERCEPTION.md describe and pin the version they ship with (a published tarball cannot be republished), so every
"newest line" and "installs" mention and every jsDelivr script-tag pin names 0.3.0-beta.6, with the beta line's
publish dates as 2026-10-22 to 2026-11-03 (0.3.0-beta.5 published 2026-11-03, beta.6 tagged the same day, both
assumed); the repository README and docs/runtime (API, ARCHITECTURE, OPTIONS-SPEC, README, INSTALL, SINKS,
ANALYTICS) follow. The package README's `init` version-check example moves one step (its own version beta.5, the newer
one beta.6) and its "installs its own version" range reads `^0.3.0-beta.6`. The pins carry no integrity hash, as
before. Historical mentions stay: "since 0.2.3 and 0.3.0-beta.5" in OPTIONS-SPEC and THREAT-MODEL, the measured visual
checks' "from 0.3.0-beta.5" in the READMEs, TELEMETRY.md, PRIVACY.md and VISUAL.md, the CHANGELOG's beta.5 section,
RESULTS.md's limit rows, SECURITY.md and docs/security, and the test comments. No runtime code, no model-visible text.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…r-send, the hand-back format and the review loop)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…citing-bohr-yivjyo

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Karanvir1729 added a commit that referenced this pull request Nov 3, 2026
The same file as a380e19 on claude/exciting-bohr-yivjyo (PR #131), byte for byte, so that PR merges cleanly;
cloud sessions start from main and read it there.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Karanvir1729 and others added 2 commits November 3, 2026 13:02
One conflict: telemetry-worker/src/pages.ts, the /start/open-source prompt. Kept this branch's rewritten prompt, which
already names genclass-dev/GenClass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The rename on main left these out because the sections they sit in are this branch's.

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

This branch has not been deployed

No deployments
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.

3 participants