Skip to content

feat: add first-class Runcrate provider template - #1888

Open
heydryft wants to merge 2 commits into
Nano-Collective:mainfrom
heydryft:feat/runcrate-provider-template
Open

heydryft wants to merge 2 commits into
Nano-Collective:mainfrom
heydryft:feat/runcrate-provider-template

Conversation

@heydryft

Copy link
Copy Markdown

Description

Adds a first-class provider template for Runcrate to the /settings providers wizard, in the same shape as the FutureInfra and API Route templates (#1559, #1548). Runcrate is a GPU cloud that also serves open models (DeepSeek V4.1 Flash, GLM-5.3, Qwen3.8 Flash, gpt-oss 120B) on an OpenAI-compatible API at https://api.runcrate.ai/v1. Open models are free with your GitHub account.

  • source/wizards/templates/provider-templates.ts: apiKeyTemplate entry runcrate, base URL https://api.runcrate.ai/v1, default model deepseek-ai/DeepSeek-V4.1-Flash, key prompt pointing at the dashboard.
  • source/wizards/templates/provider-templates.spec.ts: two tests (base URL, default model and model parsing; default provider name).
  • docs/configuration/providers/runcrate.md and a line in docs/configuration/providers/index.md.
  • .changeset/add-runcrate-provider.md (minor).

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update

Changeset

  • Added a changeset (.changeset/add-runcrate-provider.md)

Testing

Automated Tests

  • New features include passing tests in .spec.ts/tsx files (ava source/wizards/templates/provider-templates.spec.ts: 51 passed)
  • All existing tests pass (pnpm test:all): not run in full; tsc --noEmit is clean and biome check on the touched files is clean
  • Tests cover both success and error scenarios (as far as the template allows: explicit and default name)

Manual Testing

  • Tested with Ollama
  • Tested with OpenRouter
  • Tested with OpenAI-compatible API: built the provider entry with the template's buildConfig, wrote it to an isolated NANOCODER_CONFIG_DIR, then node dist/cli.js --provider Runcrate --model deepseek-ai/DeepSeek-V4.1-Flash run "Create a file named hello.txt containing the word runcrate..." used write_file and read_file and created the file with the right content.
  • Tested MCP integration (if applicable)

Checklist

  • If this was for an open issue, I was assigned to it (no issue; same path as the other provider templates)
  • Code follows project style guidelines
  • Self-review completed (prepared by an AI agent, see below)
  • Documentation updated (if needed)
  • No breaking changes (or clearly documented)
  • Appropriate logging added: n/a, data-only change

This PR was prepared with AI assistance (an AI coding agent wrote the change and ran the tests and the live run above).

Disclosure: I work on Runcrate.

@github-actions

Copy link
Copy Markdown
Contributor

nc-review: comments — 1 important, 1 nit

@heydryft — a few things worth a look, none blocking.

Adds a Runcrate provider template to the /settings providers wizard via the existing apiKeyTemplate helper, plus a docs page, an index entry, a minor changeset and two tests. The implementation matches the established pattern exactly (FutureInfra / API Route), is automatically picked up by the wizard menu, the VS Code extension and the baseUrl-based template lookup, and the new tests assert real behaviour that would fail on regression. The change is essentially correct and ready apart from one house-style point: the API-key prompt and docs embed UTM marketing tracking parameters, which appear nowhere else in the repo. I could not verify the external vendor facts (base URL reachability, the model IDs, the rc_live_ key prefix, the catalog URL) because this environment has no network or browser access, so those are taken from the author's manual test rather than independently confirmed.

🟠 important · design · source/wizards/templates/provider-templates.ts:455

The new template is the only one in the repository that embeds marketing tracking parameters in a user-facing prompt:

apiKeyPrompt:
	'API Key (from https://www.runcrate.ai/dashboard/api-keys?utm_source=nanocoder&utm_medium=directory&utm_campaign=gpu_pricing)',

I searched the whole tree: utm_ appears nowhere else in source/ or docs/ (the other 13 apiKeyPrompt values and every provider doc use clean dashboard URLs, e.g. https://app.requesty.ai/api-keys). The author discloses working for Runcrate, so attribution is fine — but attribution belongs in the docs page, not in tracking parameters injected into the CLI wizard prompt, where it makes the line noticeably noisier than its siblings. Dropping the query string (https://www.runcrate.ai/dashboard/api-keys) keeps the prompt consistent with every other template and still points at the right page; the UTM links can stay in the docs if the directory listing needs them.

⚪ nit · completeness · docs/configuration/providers/runcrate.md

The page states "Open models are free with your GitHub account", but the Setup steps only cover creating an API key in the dashboard — they never mention that a GitHub account is what unlocks the free open-model tier. A user following the steps literally may end up with a key that cannot use the free models the page advertises. Consider making the GitHub sign-in/link step explicit in the numbered Setup list (the sibling pages such as api-route.md spell out their account prerequisites the same way).


🔴 blocking · 🟠 a reviewer would ask for a change · ⚪ optional

Automated code review — correctness, security, design, tests, plus duplicates and scope. A human still decides; this is not a substitute for review and is not exhaustive. The required status checks separately cover lint, formatting, types, unused dependencies, the test suite and the build. This bot never merges. Maintainers can rerun with /re-review.

@github-actions github-actions Bot added the agent:comments nc-review left non-blocking findings label Oct 26, 2026
@heydryft

Copy link
Copy Markdown
Author

Thanks, both addressed in ab2c58a:

  • The wizard prompt now uses the clean URL, https://www.runcrate.ai/dashboard/api-keys, like the other templates.
  • The docs Setup list now starts with signing in with GitHub, and the free claim matches the published terms: a limited allowance on five open models for GitHub accounts at least 30 days old, shared per workspace and reset per session and weekly.

pnpm exec ava source/wizards/templates/provider-templates.spec.ts: 51 passed. biome check on the template file is clean.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent:comments nc-review left non-blocking findings area:docs Documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant