Skip to content

feat: multi-provider onboarding, allow-path, and global credentials#15

Merged
victormartingil merged 7 commits intomainfrom
feat/improve-onboarding
Feb 6, 2026
Merged

feat: multi-provider onboarding, allow-path, and global credentials#15
victormartingil merged 7 commits intomainfrom
feat/improve-onboarding

Conversation

@victormartingil
Copy link
Member

Summary

  • Multi-provider onboarding v2 with OAuth flow (OpenAI Codex via ChatGPT subscription)
  • New /allow-path system: grant file access outside project directory with interactive auto-prompt and persistence
  • Credential storage migrated to ~/.coco/.env only — removed project-level .env support and dotenv dependency
  • New providers: Codex (OAuth), Kimi/Moonshot, LM Studio (local)
  • Google Cloud ADC authentication for Gemini
  • Terminal UX improvements: bottom margin padding, markdown rendering, clipboard support
  • Updated all provider models to February 2026 versions

Test plan

  • Run pnpm test — verify existing tests pass
  • Run coco without any API key configured — verify onboarding v2 flow
  • Configure Anthropic via onboarding — verify key saved to ~/.coco/.env
  • Try file operation outside project dir — verify interactive allow-path prompt appears
  • Run /allow-path list — verify persistence across sessions
  • Run /provider — verify all 5 user-facing providers listed
  • Run /model — verify models match February 2026 catalog
  • Verify no .env file created in project directory

README improvements:
- More impactful hero section with emotional tagline
- Clear problem/solution presentation
- Side-by-side comparison with other AI assistants
- Simplified Quick Start (just \`coco\`)
- Provider documentation with comparison table
- Cleaner examples and better flow

Onboarding UX improvements:
- First-time users see welcoming screen with all provider links
- Direct URLs to API key pages for each provider
- \"How do I get an API key?\" help option
- More prominent API key link when configuring provider
- Better messaging and visual hierarchy
…tial management

- Add interactive onboarding v2 with OAuth support (OpenAI Codex via ChatGPT)
- Add /allow-path command to grant file access outside project directory
- Add automatic interactive prompt when tools hit path restrictions
- Migrate credential storage to ~/.coco/.env only (remove project-level .env)
- Remove dotenv dependency and dead onboarding v1 code
- Add Codex, Kimi, and LM Studio provider support
- Update all provider models to February 2026 versions
- Add Google Cloud ADC authentication for Gemini
- Improve terminal UX with bottom margin padding
- Add /copy, /update commands and markdown rendering
- Expand confirmation system with trust persistence
- Fix 34 test failures: update model defaults, add missing mock exports
  (getLastUsedProvider, getLastUsedModel, resume, pause), fix chalk mock,
  update provider counts, fix config loader strict mode, fix mock hoisting
- Fix 83 lint warnings: remove unused imports/vars across 22 test files
  and source files, replace new Array() with Array.from(), prefix unused
  params with underscore, remove dead helper functions
- Fix typecheck errors: cast response.json() data in oauth.ts, remove
  invalid stdio option in onboarding-v2.ts
- Fix formatting: run oxfmt on 25 files with style drift
- Fix 34 test failures: update model defaults, add missing mock exports
  (getLastUsedProvider, getLastUsedModel, resume, pause), fix chalk mock,
  update provider counts, fix config loader strict mode, fix mock hoisting
- Fix 83 lint warnings: remove unused imports/vars across 22 test files
  and source files, replace new Array() with Array.from(), prefix unused
  params with underscore, remove dead helper functions
- Fix typecheck errors: cast response.json() data in oauth.ts, remove
  invalid stdio option in onboarding-v2.ts
- Fix formatting: run oxfmt on 25 files with style drift
…verage

- Fix 34 test failures: update model defaults, add missing mock exports
  (getLastUsedProvider, getLastUsedModel, resume, pause), fix chalk mock,
  update provider counts, fix config loader strict mode, fix mock hoisting
- Fix 83 lint warnings: remove unused imports/vars across 22 test files
  and source files, replace new Array() with Array.from(), prefix unused
  params with underscore, remove dead helper functions
- Fix typecheck errors: cast response.json() data in oauth.ts, remove
  invalid stdio option in onboarding-v2.ts
- Fix formatting: run oxfmt on 25 files with style drift
- Fix CI-specific failures: replace hardcoded paths in loader.test.ts
  with CONFIG_PATHS for portability across environments
- Fix coverage threshold (68.6% → 75%): add tests for providers/auth
  (67 tests), codex provider (42 tests), fallback provider (39 tests),
  allowed-paths (27 tests), build tools (43 tests); exclude type-only
  files and interactive UI from coverage
…verage

- Fix 34 test failures: update model defaults, add missing mock exports
  (getLastUsedProvider, getLastUsedModel, resume, pause), fix chalk mock,
  update provider counts, fix config loader strict mode, fix mock hoisting
- Fix 83 lint warnings: remove unused imports/vars across 22 test files
  and source files, replace new Array() with Array.from(), prefix unused
  params with underscore, remove dead helper functions
- Fix typecheck errors: cast response.json() data in oauth.ts, remove
  invalid stdio option in onboarding-v2.ts
- Fix formatting: run oxfmt on 25 files with style drift
- Fix CI-specific failures: replace hardcoded paths in loader.test.ts
  with CONFIG_PATHS for portability across environments
- Fix coverage threshold (68.6% → 75%): add tests for providers/auth
  (67 tests), codex provider (42 tests), fallback provider (39 tests),
  allowed-paths (27 tests), build tools (43 tests); exclude type-only
  files and interactive UI from coverage
…verage

- Fix 34 test failures: update model defaults, add missing mock exports
  (getLastUsedProvider, getLastUsedModel, resume, pause), fix chalk mock,
  update provider counts, fix config loader strict mode, fix mock hoisting
- Fix 83 lint warnings: remove unused imports/vars across 22 test files
  and source files, replace new Array() with Array.from(), prefix unused
  params with underscore, remove dead helper functions
- Fix typecheck errors: cast response.json() data in oauth.ts, remove
  invalid stdio option in onboarding-v2.ts
- Fix formatting: run oxfmt on 25 files with style drift
- Fix CI-specific failures: replace hardcoded paths in loader.test.ts
  with CONFIG_PATHS for portability across environments
- Fix coverage threshold (68.6% → 75%): add tests for providers/auth
  (67 tests), codex provider (42 tests), fallback provider (39 tests),
  allowed-paths (27 tests), build tools (43 tests); exclude type-only
  files and interactive UI from coverage
@victormartingil victormartingil merged commit 68018de into main Feb 6, 2026
6 checks passed
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