Connectors: clean-install bundling + Google OAuth foundation #1

Open
tim.lingo wants to merge 1 commits from feat/connectors-clean-install-and-google-oauth into main
Owner

Makes connectors work on a clean Mac with no Node/npm installed, and lays the foundation for one-click Google sign-in.

Clean-install bundling

  • npm run bundle → self-contained dist/connectd.cjs (no node_modules). bundle:servers → pre-bundled fs-server.mjs ("Your files", runs without npx). bundle:all.
  • Runtime resolution in the bridge: configs use @node (bundled runtime) + @bundled/<server> (server shipped alongside the bridge), resolved via NEURON_CONNECTD_BUNDLE_DIR. Remote connectors + "Your files" work offline, zero deps.
  • Graceful ENOENT → needs_setup ("coming soon") instead of a cryptic spawn crash for not-yet-bundled npx connectors.

Google OAuth foundation (google-oauth.ts)

  • Desktop authorization-code + PKCE, refresh, Keychain storage, gated on GOOGLE_OAUTH_CLIENT_ID (honest needs_setup until configured).
  • New "google" auth mode + /google/oauth/start & /google/callback endpoints.

Status / not yet done

  • Google: pending the Neuron Google OAuth client + Google verification. Recommended: point at Google's new official remote Workspace MCP servers (gmail/drive/calendarmcp.googleapis.com) via http+Bearer instead of community stdio packages — see the connectors backlog.
  • Bundled Node runtime still needs codesign/notarize in the DMG (separate neuron-ui PR + Will's cert).

Verified locally: bundle runs standalone; "Your files" connects (14 tools, no npx); OAuth consent URL correct (PKCE/offline); honest needs_setup states.

🤖 Generated with Claude Code

Makes connectors work on a clean Mac with **no Node/npm installed**, and lays the foundation for one-click Google sign-in. ## Clean-install bundling - `npm run bundle` → self-contained `dist/connectd.cjs` (no node_modules). `bundle:servers` → pre-bundled `fs-server.mjs` ("Your files", runs without npx). `bundle:all`. - Runtime resolution in the bridge: configs use `@node` (bundled runtime) + `@bundled/<server>` (server shipped alongside the bridge), resolved via `NEURON_CONNECTD_BUNDLE_DIR`. Remote connectors + "Your files" work offline, zero deps. - Graceful `ENOENT → needs_setup` ("coming soon") instead of a cryptic spawn crash for not-yet-bundled npx connectors. ## Google OAuth foundation (`google-oauth.ts`) - Desktop authorization-code + PKCE, refresh, Keychain storage, gated on `GOOGLE_OAUTH_CLIENT_ID` (honest `needs_setup` until configured). - New `"google"` auth mode + `/google/oauth/start` & `/google/callback` endpoints. ## Status / not yet done - **Google**: pending the Neuron Google OAuth client + Google verification. **Recommended:** point at Google's new official remote Workspace MCP servers (gmail/drive/calendarmcp.googleapis.com) via http+Bearer instead of community stdio packages — see the connectors backlog. - **Bundled Node runtime** still needs codesign/notarize in the DMG (separate neuron-ui PR + Will's cert). Verified locally: bundle runs standalone; "Your files" connects (14 tools, no npx); OAuth consent URL correct (PKCE/offline); honest needs_setup states. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
tim.lingo added 1 commit 2026-06-26 19:28:27 +00:00
Make connectors work on a clean Mac with no Node/npm installed, and lay
the foundation for one-click Google sign-in.

Clean-install bundling:
- bundle scripts: `npm run bundle` -> self-contained dist/connectd.cjs (CJS,
  no node_modules); `bundle:servers` -> pre-bundled MCP servers (fs-server.mjs
  for "Your files", runs without npx); `bundle:all`.
- runtime resolution in the bridge: a connector config can use command "@node"
  (the bundled runtime, process.execPath) and arg "@bundled/<server>" (a server
  shipped alongside the bridge), resolved at spawn time via
  NEURON_CONNECTD_BUNDLE_DIR. So remote connectors + "Your files" work offline,
  zero deps.
- graceful ENOENT -> needs_setup ("coming soon") instead of a cryptic spawn
  crash for not-yet-bundled npx connectors on a clean machine.

Google OAuth foundation (google-oauth.ts):
- desktop-style authorization-code + PKCE flow, refresh, Keychain storage,
  gated on GOOGLE_OAUTH_CLIENT_ID (honest needs_setup until configured).
- new auth mode "google" for stdio connectors + /google/oauth/start and
  /google/callback endpoints. NOTE: pending the Neuron Google OAuth client +
  Google verification; not certified end-to-end yet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
You are not authorized to merge this pull request.
This pull request can be merged automatically.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/connectors-clean-install-and-google-oauth:feat/connectors-clean-install-and-google-oauth
git checkout feat/connectors-clean-install-and-google-oauth
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tim.lingo/neuron-connectd#1