Skip to content

Conversation

@shuv1337
Copy link
Collaborator

@shuv1337 shuv1337 commented Jan 17, 2026

Summary

Merges the shuvcode-dev branch into integration, bringing:

Changes

Features (from upstream v1.1.25)

  • Edit project and session titles
  • Unified search for commands and files
  • Carbonfox theme
  • OAuth redirect URI configuration for MCP servers
  • Skeleton loader for sessions
  • Version display in session header and /status dialog
  • LiteLLM proxy provider option

Fixes

Refactoring

  • Server routes modularized into separate files (config, experimental, file, global, mcp, permission, project, provider, pty, question, session, tui)
  • Console spotlight component replaces light-rays
  • OpenTUI upgraded to v0.1.74

Breaking Changes

None

Testing

  • Typecheck passes (bun turbo typecheck)
  • Existing tests cover changes
  • SSH paste fix manually validated

Greptile Summary

Merges shuvcode-dev branch into integration, bringing upstream v1.1.25 sync along with critical fixes for SSH paste handling and the OPENCODE_DISABLE_MODELS_FETCH flag.

Key Changes:

  • Upstream v1.1.25 Sync: Server routes modularization (split into 12 separate route files), edit project/session titles, unified search for commands and files, Carbonfox theme, MCP OAuth redirect URI configuration, skeleton loader for sessions, version display in session header, and LiteLLM proxy provider option
  • SSH Paste Fix (fix: coalesce fragmented paste events over SSH #305): Addresses fragmented paste events from terminals like MobaXterm (already merged into shuvcode-dev before this PR)
  • Models Fetch Flag Fix (fix: respect OPENCODE_DISABLE_MODELS_FETCH flag in ModelsDev.get() #307): Ensures OPENCODE_DISABLE_MODELS_FETCH properly prevents models.dev data from being used (already merged into shuvcode-dev before this PR)
  • CSS Production Build Fix: Removed extra closing brace in message-part.css that was breaking Tailwind CSS parser during production builds
  • Console Improvements: Replaced light-rays component with new WebGPU-based spotlight component, updated @smithy/eventstream-codec dependency
  • Bug Fixes: Remember last opened project, truncate workspace title, plugin cache reinstall when module missing, question tool tab navigation

Architecture Impact:
The server routes refactoring is a significant architectural improvement that modularizes the monolithic server.ts into separate route files (session.ts, mcp.ts, file.ts, config.ts, experimental.ts, provider.ts, pty.ts, question.ts, permission.ts, global.ts, tui.ts). This improves maintainability and follows separation of concerns principles.

Testing:

  • Typecheck passes (bun turbo typecheck)
  • Existing tests cover changes
  • SSH paste fix manually validated per PR description

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • This is a well-structured merge PR that brings upstream v1.1.25 changes plus critical fixes. The server routes refactoring follows clean separation patterns with no breaking changes to the API contract. The CSS fix resolves a production build blocker with a simple syntax correction. The fixes for SSH paste (fix: coalesce fragmented paste events over SSH #305) and models fetch flag (fix: respect OPENCODE_DISABLE_MODELS_FETCH flag in ModelsDev.get() #307) were already merged and validated in shuvcode-dev. All changes pass typecheck and are architecturally sound.
  • No files require special attention

Important Files Changed

Filename Overview
packages/ui/src/components/message-part.css Removed extra closing brace that was breaking production builds - simple CSS syntax fix
packages/opencode/src/server/server.ts Refactored server routes into modular files, reducing complexity and improving maintainability
packages/opencode/src/server/routes/session.ts New modular session routes file extracted from main server - clean separation of concerns
packages/opencode/src/server/routes/mcp.ts New modular MCP routes file with OAuth callback support for MCP servers
packages/console/app/src/component/spotlight.tsx New WebGPU-based spotlight component replacing light-rays - modern rendering approach
packages/app/src/context/command.tsx Simplified command palette by delegating to unified file.open command for search

Sequence Diagram

sequenceDiagram
    participant Dev as Developer
    participant ShuvDev as shuvcode-dev Branch
    participant Integration as integration Branch
    participant Upstream as Upstream v1.1.25
    participant Server as Server Routes
    participant UI as UI Components

    Note over Dev,UI: PR #308: Merge shuvcode-dev into integration

    Dev->>ShuvDev: Fix #305: SSH paste coalescing
    Note over ShuvDev: Add pasteBuffer with 100ms debounce<br/>to handle fragmented paste events

    Dev->>ShuvDev: Fix #307: OPENCODE_DISABLE_MODELS_FETCH
    Note over ShuvDev: Add early return in ModelsDev.get()

    Upstream->>ShuvDev: Sync v1.1.25
    Note over Upstream: - Server routes modularization<br/>- Edit titles<br/>- Unified search<br/>- Carbonfox theme<br/>- MCP OAuth redirect URI<br/>- LiteLLM proxy provider

    ShuvDev->>ShuvDev: Refactor server.ts
    Server->>Server: Extract routes into modules:<br/>session, mcp, file, config,<br/>experimental, provider, pty,<br/>question, permission, global, tui

    ShuvDev->>ShuvDev: Replace light-rays with spotlight
    UI->>UI: Migrate from light-rays component<br/>to WebGPU-based spotlight

    ShuvDev->>ShuvDev: Fix CSS production build
    Note over UI: Remove extra closing brace<br/>in message-part.css

    ShuvDev->>Integration: Merge PR #308
    Note over Integration: All changes now in integration:<br/>- v1.1.25 features<br/>- SSH paste fix<br/>- Models fetch flag fix<br/>- CSS build fix
Loading

seilk and others added 30 commits January 15, 2026 22:01
kommander and others added 26 commits January 16, 2026 19:52
Upstream changes:
- Edit project and session titles
- Remember last opened project
- Workspace expansion fixes
- Server routes cleanup
- OpenTUI upgrade to v0.1.74
- New carbonfox theme
- SDK regeneration (@hey-api/openapi-ts 0.90.4)
- Plugin cache reinstall fix

Resolved conflicts:
- .github/workflows/update-nix-hashes.yml: deleted (fork removed)
- packages/console/app/src/component/light-rays.tsx: deleted (upstream removed)
- packages/opencode/src/server/project.ts: keep ours (fork browse API)
- packages/app/src/components/session/session-header.tsx: keep ours (fork layout)
- packages/app/src/context/global-sync.tsx: merge (runWithOwner + changes/node)
- packages/app/src/pages/layout.tsx: keep ours (fork branding, mobile)
- packages/opencode/src/bun/index.ts: merge (modExists check)
- packages/opencode/src/cli/cmd/tui/component/tips.tsx: keep ours (shuvcode tips)
- packages/opencode/src/cli/cmd/tui/context/theme.tsx: keep ours (theme-utils refactor)
- packages/opencode/src/cli/cmd/tui/routes/session/header.tsx: merge (responsive + version)
- packages/sdk/js/src/v2/gen/types.gen.ts: accept upstream
- sdks/vscode/package.json: keep branding, update version
Regenerated SDK types to include fork browse/create project APIs.
Fixed duplicate model property in message-v2.ts merge issue.
Added Project import to server.ts for CreateError handling.
…uilds

The CSS file had an extra closing brace that caused Tailwind CSS's parser
to fail during production builds with 'Missing opening {' error.

Also includes:
- Console: bump @smithy/eventstream-codec, fix WebGPU context type assertion
- SDK: regenerated client types
@shuv1337 shuv1337 merged commit e0faaa0 into integration Jan 17, 2026
2 checks passed
shuv1337 added a commit that referenced this pull request Jan 17, 2026
Resolved conflict in bun.lock by regenerating lockfile.

Closes #308
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.