Skip to content

Rebrand Void to Orcide with SSO and collaboration features#943

Open
danialsamiei wants to merge 46 commits intovoideditor:mainfrom
orcest-ai:claude/rebrand-to-orcide-UA3dB
Open

Rebrand Void to Orcide with SSO and collaboration features#943
danialsamiei wants to merge 46 commits intovoideditor:mainfrom
orcest-ai:claude/rebrand-to-orcide-UA3dB

Conversation

@danialsamiei
Copy link

Summary

This PR rebrand the codebase from "Void" to "Orcide" and introduces enterprise features including OAuth2 SSO authentication, team collaboration, and user profile management.

Key Changes

Branding & Product Updates

  • Renamed product from "Void" to "Orcide" across configuration files, documentation, and UI strings
  • Updated product.json with new application name, version (2.0.0), and branding
  • Updated package.json metadata and version
  • Updated README.md with Orcide branding and Orcest AI ecosystem context
  • Updated GitHub repository references from voideditor/void to orcest-ai/Orcide

Authentication & SSO

  • New orcideSSOService.ts: Comprehensive OAuth2 SSO service with:

    • PKCE-based authorization flow support
    • Token refresh with automatic expiration handling
    • Secure token storage using encryption service
    • JWT parsing and validation
    • Session state management with event emitters
  • New orcideSSOBrowserService.ts: Browser-specific SSO contribution handling:

    • Popup window management for OAuth2 callback
    • Redirect-based OAuth flow support
    • Message-based communication between popup and main window
    • Automatic popup cleanup and timeout handling

Collaboration Features

  • New orcideCollaborationService.ts: Team collaboration service with:

    • Resource sharing (projects, repositories, workspaces, files, chat threads, model configs)
    • Team member management with role-based access control
    • Invitation system with expiration and status tracking
    • Permission management (view, edit, admin)
    • Event-driven state management
  • New orcideUserProfileService.ts: User profile management with:

    • User profile and preferences storage
    • Repository management with sharing capabilities
    • Session tracking
    • Persistent storage with encryption

LLM Provider Integration

  • Added support for "Orcest AI" (RainyModel) provider in model capabilities
  • Updated sendLLMMessageService.ts to support web-based LLM message sending
  • Added web-specific LLM service implementation with OpenAI-compatible API support
  • Configured Orcest AI endpoint: https://rm.orcest.ai/v1

Infrastructure & DevOps

  • New Dockerfile: Container configuration for cloud deployment on Render.com

    • Installs build dependencies for native modules
    • Configures X11 libraries for native-keymap and node-pty
    • Sets up ripgrep for code search
  • New .dockerignore: Optimizes Docker build context

  • New SECURITY.md: Security policy and vulnerability reporting guidelines

  • New .github/dependabot.yml: Automated dependency updates configuration

  • New .github/CODEOWNERS: Code ownership configuration

Build & Development

  • Updated build/npm/postinstall.js to handle npm rebuild correctly in subdirectories
  • Updated extension publisher names from "voideditor" to "orcide"
  • Updated SSH remote server setup URLs to use new repository

Documentation

  • Updated VOID_CODEBASE_GUIDE.md to reference Orcide
  • Updated HOW_TO_CONTRIBUTE.md with new repository references
  • Updated .voidrules to reflect Orcide project identity

Notable Implementation Details

  • Security: SSO tokens are encrypted before storage using the encryption service
  • PKCE Flow: Implements RFC 7636 PKCE for secure OAuth2 authorization
  • Token Refresh: Automatic token refresh 5 minutes before expiration with exponential backoff on failures
  • Web Support: Conditional service registration for web vs. desktop environments
  • Event-Driven: All services use event emitters for reactive state management
  • Storage: Persistent state management using VS Code's storage service with encryption

https://claude.ai/code/session_01CjDqzV3ECQxE1g4jFn7PBu

danialsamiei and others added 30 commits February 15, 2026 20:44
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…em ripgrep for remote

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…for production

Co-authored-by: Cursor <cursoragent@cursor.com>
- Detect x-forwarded-proto header to use correct scheme (HTTPS) behind reverse proxy
- Fix hardcoded 'http' scheme in extension gallery resource URL template
- Fix CSP script-src to use detected scheme instead of hardcoded http://
- Update OpenRouter models list with optimal selection including free tiers
- Enable codestral, gemini-flash, and phi-4-reasoning models
- Update HTTP-Referer and X-Title headers for ide.orcest.ai branding

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
When behind an HTTPS reverse proxy, add the upgrade-insecure-requests
CSP directive to automatically upgrade any remaining http:// resource
URLs to https://, ensuring no mixed content errors.

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
…enrouter

Fix HTTPS mixed content and optimize OpenRouter configuration
The React components (sidebar, settings, tooltip, quick-edit, etc.)
must be built before npm run compile, as the TypeScript compilation
depends on the React output files in browser/react/out/.

Adds npm run buildreact step before compile in the Docker build.

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
Fix build: run buildreact before compile in Dockerfile
The VS Code server requires a connection token by default, causing
a 'Forbidden.' response when accessing the site. Since Render.com
handles access control externally, disable the built-in token.

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
…on-token

Fix Forbidden error: add --without-connection-token to server CMD
npm run compile does not produce bundled workbench.css or nls.messages.js
(those require the full packaging pipeline). Setting VSCODE_DEV=1 makes
the server use workbench-dev.html which loads CSS dynamically via import
maps, matching the compile-only build output.

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
Fix blank page: set VSCODE_DEV=1 for dev workbench template
Services that depend on IMainProcessService (Electron-only) now have
web-compatible replacements registered via void.web.services.ts:

- LLMMessageServiceWeb: uses fetch() + SSE streaming for OpenRouter and
  other OpenAI-compatible providers directly from the browser
- MCPServiceWeb, MetricsServiceWeb, VoidUpdateServiceWeb,
  GenerateCommitMessageServiceWeb: no-op stubs for non-essential services

Also handles INativeHostService (Electron-only) gracefully in React
settings component with optional chaining.

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
…ices

Fix Void services for web mode: web-compatible LLM service and stubs
The registerSingleton override from void.web.services.ts was not
taking effect because the compiled JS file may not load correctly
in dev mode. Instead, skip registering the Electron-only service
implementations (that depend on IMainProcessService) when running
in web mode. The web stubs from void.web.services.ts then become
the only registrations for these 5 services.

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
…ice-guards

Fix Void services in web mode: guard Electron registrations with isWeb
The separate void.web.services.ts file was not being compiled/loaded,
so all 5 services were UNKNOWN in web mode. This commit adds web stub
implementations directly into each service file's else branch of the
existing isWeb guard, guaranteeing they compile and register.

- LLMMessageServiceWeb: real fetch+SSE streaming for OpenRouter/OpenAI
- MetricsServiceWeb: no-op stub
- VoidUpdateServiceWeb: no-op stub
- MCPServiceWeb: minimal stub with empty state
- GenerateCommitMessageServiceWeb: no-op stub

Also removes the now-unnecessary void.web.services.js import from
workbench.web.main.internal.ts.

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
…tubs

Fix Void services in web mode: inline web stubs into service files
Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
RefreshModelService extracts methods as standalone functions (e.g.
const listFn = this.llmMessageService.openAICompatibleList) which
loses the this context. Converting to arrow function properties
ensures this is always bound to the class instance.

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
…ding

Fix this-binding: use arrow functions in web LLM service
…pdates

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
…s-event

Fix settings state: fire event before async storage to ensure React updates
Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
…models

Fix onboarding: reduce OpenRouter default models to avoid all-hidden threshold
devin-ai-integration bot and others added 13 commits February 17, 2026 00:13
…hold

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
…idden-models

Fix stale hidden models: unhide defaults when count drops below threshold
- Add .dockerignore to exclude .git, node_modules, docs, and build artifacts
  from Docker context, significantly reducing build context size
- Reduce NODE_OPTIONS from 8192MB to 4096MB to prevent OOM on Render's
  Starter build pipeline (8GB RAM with system overhead)

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
…deploy

Fix Render deploy: add .dockerignore, reduce NODE_OPTIONS to 4096MB
- OpenAI-Compatible provider setup with rm.orcest.ai
- Feature-to-model mapping (Chat, Ctrl+K, Autocomplete, Apply)
- Available model aliases and routing info

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
docs: Add RainyModel configuration guide for Orcest AI
- Replace VoidEditor/void-editor/void.so with Orcide/orcest.ai
- Rewrite README with Orcest AI ecosystem branding
- Update extension configs and source files
- Keep void/ directory structure intact (required for VS Code contrib system)

Part of the Orcest AI ecosystem transformation.

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
… -> github.com/orcest-ai

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
Part of Phase 4 - GitHub structure hardening for Orcest AI ecosystem.

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
refactor: Deep rebranding - remove Void upstream traces
…ild output directory name)

Co-Authored-By: Danial Piterson <danial.samiei@gmail.com>
fix: Revert widget import paths to void-editor-widgets-tsx (deployment fix)
… and Orcest AI API integration

- Complete rebrand from Void to Orcide across all user-facing strings, configs, and messages
- Add SSO authentication service (OIDC/OAuth2) with login.orcest.ai integration
  - PKCE-based authorization flow with popup and redirect support
  - Automatic token refresh, secure storage, and session management
- Add SSO browser service with popup window management and command palette actions
  - Sign In, Sign Out, SSO Status, and Refresh Token commands
- Add user profile service with SSO-based identity isolation
  - Per-user preferences, repositories, and active session tracking
- Add collaboration service for resource sharing and team management
  - Share workspaces, chat threads, model configs, and MCP servers
  - Team member invitation and role-based access control
- Add orcestAI as new API provider with RainyModel as default
  - Pre-configured endpoint: https://rm.orcest.ai/v1
  - Default models: rainymodel-pro, gpt-4o, claude-3.5-sonnet, etc.
- Update product.json with SSO config, default API, and Orcest ecosystem URLs
- Update storage keys, metrics, file transfer paths, and build configs

https://claude.ai/code/session_01CjDqzV3ECQxE1g4jFn7PBu
…-sso-v2

feat: Complete Orcide rebrand with SSO, user profiles, collaboration, and Orcest AI API integration
@danialsamiei danialsamiei force-pushed the claude/rebrand-to-orcide-UA3dB branch from e2e11e9 to 3314490 Compare February 21, 2026 11:34
…efault provider

- Replace Void cube logo with Orcide SVG logo on welcome page and watermark
- Remove API key requirement from orcestAI provider (uses OllamaFreeAPI)
- Set orcestAI endpoint to https://ollamafreeapi.orcest.ai/v1 (free, no auth)
- Add orcestAI to "Free" tab as first option in onboarding
- Default to orcestAI for smart/cheap/all provider selections
- Update default models to ollamafreeapi models (llama3, mistral, deepseek, etc.)
- Update provider display name and descriptions for Orcest ecosystem

https://claude.ai/code/session_01CjDqzV3ECQxE1g4jFn7PBu
The TypeScript compiler treats unused imports as errors. This import
was declared but never used, causing the build to fail.

https://claude.ai/code/session_01CjDqzV3ECQxE1g4jFn7PBu
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