Skip to content

feat(connect): ask is a map of tools or "everything" (v2.11.0) - #218

Merged
krish221997 merged 1 commit into
mainfrom
feat/connect-ask-everything
Nov 3, 2026
Merged

krish221997 merged 1 commit into
mainfrom
feat/connect-ask-everything

Conversation

@krish221997

Copy link
Copy Markdown
Collaborator

Part of one change across three repos: the connect SDK makes ask required ("everything" or tools, 0.20.0), core-ui withoneai/core-ui#1040 handles the setup page, and this PR is the CLI.

Change

  • validateConfig: ask is required and must be a map of tools or "everything". A missing ask, an empty map, or any other string is refused with a message naming both forms.
  • Handoff v: 2: ask is { kind: "tools", rules } or { kind: "everything" }. Version 1's ask: null meant "leave it alone", so it could never switch an app to everything. The page still reads v1.
  • Everything: connect create removes ONE_PERMISSION_SET from the env file with a new removeEnvKeys. upsertEnv's null only appends an empty key, so it can't remove one. A set left there would keep the app asking for the old tools, because the backend asks for everything only when authorize names no permission_set. The agent-mode result gains asksForEverything.
  • connect types: writes action names only for named tools (askedTools).
  • README, the bundled one skill and one guide describe both forms. Version 2.11.0.

Verified end to end (local stack)

The CLI from this change (one connect create) against the local core-ui page on this branch, in a fresh project:

Step one.connect.ts Page App's permission sets .env
1 ask: "everything" "Create app" showing the studio's "What your users see" guide 0 no ONE_PERMISSION_SET
2 ask: { stripe: { access: "read-only" } } "Save changes" 1 (Stripe, GET) ONE_PERMISSION_SET=b6644fbc…
3 ask: "everything" "Save changes", same guide default ask deleted (deleted: true) ONE_PERMISSION_SET removed
– no ask — — CLI refuses: "ask is required: name the tools the app asks for, or write ask: \"everything\"."

Step 3 (switching an existing app to everything) was impossible before: version 1 sent ask: null, which the page read as "leave it alone", and the CLI never removed ONE_PERMISSION_SET.

Backend: nothing changes. An authorize request without permission_set already asks for everything (oauth.rs).

Tests: npm test passes 709 of 715, including 4 new (everything accepted, every bad ask refused, removeEnvKeys, handoff v2). The 6 failures are resolveConfig path tests that also fail on main on macOS (/var vs /private/var). tsc and the build are clean.

Release order: core-ui #1040 first (it reads v1 and v2), then this, then the SDK.

🤖 Generated with Claude Code

one.connect.ts now always says what the app asks for (@withone/connect
0.20.0). The setup handoff is version 2 and carries the ask either way,
so the page can switch an existing app to everything, which version 1's
ask: null ("leave it alone") could not. When the app asks for
everything the CLI removes ONE_PERMISSION_SET from the env file, since
a set left there would keep the app asking for the old tools. A config
without ask, with an empty map, or with any other string is refused
with a message naming both forms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@krish221997
krish221997 merged commit d615a4a into main Nov 3, 2026
7 checks passed
@krish221997
krish221997 deleted the feat/connect-ask-everything branch November 3, 2026 12:46
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.

2 participants