Skip to content

feat(cloud): default login to api.specnaut.com — no prompt, no Convex URL - #417

Merged
kevinkod merged 1 commit into
mainfrom
cli-cloud-default-api-url
Jul 13, 2026
Merged

feat(cloud): default login to api.specnaut.com — no prompt, no Convex URL#417
kevinkod merged 1 commit into
mainfrom
cli-cloud-default-api-url

Conversation

@kevinkod

@kevinkod kevinkod commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Why

specnaut cloud login on a fresh machine prompted for a raw
https://your-deployment.convex.site URL. Two problems:

  1. Friction — Specnaut Cloud is a single hosted service. There is no per-user deployment to look up, so asking for a URL is busywork.
  2. Implementation leak — the prompt literally showed *.convex.site, exposing Convex as the backend to every user.

What

  • Resolve the API URL to a canonical default https://api.specnaut.com when there's no --api-url flag and no api_url in backlog-config.yml. Login now opens the browser with zero prompts.
  • Remove the interactive URL prompt entirely.
  • --api-url <url> and api_url: in backlog-config.yml stay as escape hatches for dev / self-hosted deployments.
  • Scrub the *.convex.site example from the config stub + the bundled backlog SKILL.md.

Trust model (#400) — preserved verbatim

The anti-phishing rule is unchanged: a config-supplied URL with no prior credentials still requires an explicit confirmation before authenticating. The new default source is baked into the signed binary (not attacker-controllable), so it's inherently trusted — same as an explicit --api-url. Covered by the updated cloud_login_trust_test.ts.

Agent adoption

specnaut cloud login (and specnaut login) no longer asks for a deployment URL — it defaults to https://api.specnaut.com. If your project's .specnaut/backlog-config.yml pins api_url to a raw *.convex.site host, you can delete that line to use the branded default (keep it only for a dev / self-hosted deployment). No re-login is required; existing credentials keep working.

Open `.specnaut/backlog-config.yml` in my project. If it has an `api_url:` line pointing at a `*.convex.site` host under `backend: cloud`, remove that line so the CLI uses its built-in default `https://api.specnaut.com`. Leave `api_url` untouched if it points at a non-Specnaut (dev or self-hosted) deployment. Don't touch `project_key` or any other field.

Tests

Full suite green (1035 passed). Updated the trust + label tests for the default source; cloud token no-creds guidance still exits 1 as before.

🤖 Generated with Claude Code

… URL

`specnaut cloud login` on a fresh machine used to prompt for a raw
`*.convex.site` deployment URL. That was both friction (Specnaut Cloud is
a single hosted service — there is nothing for the user to look up) and an
implementation leak (the prompt literally exposed Convex as the backend).

Resolve the API URL to the canonical `https://api.specnaut.com` by default,
so login just opens the browser with zero prompts. `--api-url` and an
`api_url` in `backlog-config.yml` remain as escape hatches for dev /
self-hosted deployments. The interactive URL prompt is removed.

The `#400` trust model is preserved verbatim: a config-supplied URL with no
prior creds still requires confirmation; the CLI-shipped `default` source is
baked into the signed binary, so it is inherently trusted like `--api-url`.

Note: must not ship until api.specnaut.com resolves to the Convex HTTP
endpoint (custom domain), otherwise login breaks.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@kevinkod
kevinkod merged commit 2ccc064 into main Jul 13, 2026
8 of 9 checks passed
@kevinkod
kevinkod deleted the cli-cloud-default-api-url branch July 13, 2026 21:55
kevinkod added a commit that referenced this pull request Aug 4, 2026
… URL (#417)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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