Skip to content

Conversation

@devlopersabbir
Copy link
Owner

@devlopersabbir devlopersabbir commented Jul 2, 2025

Summary by CodeRabbit

  • New Features

    • Added real-time tracking and display of online coders, including a floating UI component with animated effects.
    • Introduced Kotlin language support for code execution.
    • Added comprehensive test suite for multi-language code execution with concurrency and resource limit scenarios.
    • Added contributing guidelines for adding new language configurations.
  • Improvements

    • Enhanced code editor and input components with full-width styling and improved state persistence.
    • Updated global and shared styles with new gradient backgrounds and animation effects.
    • Updated metadata and configuration management for improved maintainability.
  • Chores

    • Added continuous integration workflow for building and testing with Docker and Node.js.
    • Updated dependencies and scripts to support real-time features and testing.
  • Bug Fixes

    • Improved mobile responsiveness and layout transitions.
  • Documentation

    • Updated changelog with categorized entries and new feature highlights.

@vercel
Copy link

vercel bot commented Jul 2, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
executeme ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 2, 2025 10:33am

@coderabbitai
Copy link

coderabbitai bot commented Jul 2, 2025

Caution

Review failed

The pull request is closed.

Walkthrough

This update introduces Kotlin language support across the code execution platform, including Docker integration and language configuration. Real-time online coder tracking is implemented via Socket.IO, with frontend components showing live user counts. Comprehensive Vitest-based tests are added, and the frontend receives style, layout, and socket integration enhancements. Supporting documentation and metadata are updated.

Changes

File(s) Change Summary
.github/workflows/ci.yaml Added CI workflow: Node.js setup, Docker build, placeholder test step.
CONTRIBUTING.md Added initial contributing guidelines for language configuration.
app.js, package.json Added real-time Socket.IO user tracking, NodeCache for in-memory cache, updated server startup, new dependencies.
changelog.md Updated changelog with feature/fix prefixes, new features, and improved categorization.
docker-compose.yaml, docker/Dockerfile.kotlin, docker/Dockerfile.deno, docker/Dockerfile.python Added Kotlin service and Dockerfile, minor Dockerfile comment removals.
example/index.kt Added Kotlin "Hello, World!" example file.
language/config.js Added Kotlin language configuration to LANGUAGE_CONFIG export.
package.json Added test script, node-cache, socket.io, and Vitest dependencies.
scripts.sh Replaced with script for Docker cleanup and full container recreation.
tests/executor.test.js Added comprehensive Vitest test suite for code execution, errors, resource limits, and concurrency.
vitest.config.js Added Vitest configuration with timeouts and exclusions.
websites/.env.local Removed SERVER_BASE_URL_LOCAL variable.
websites/package.json Added socket.io-client and zustand dependencies.
websites/src/app/_components/code-input.tsx, .../editor-view/code-editor.tsx, .../page.tsx Improved layout: full width, overflow handling, responsive grid, editor state persistence.
websites/src/app/globals.css, .../online-coders/style.css Added animated gradient and accent line classes; new keyframe animations for UI effects.
websites/src/app/layout.tsx, .../constants/base-memetadata.ts Refactored metadata: imported baseMetadata, removed inline authors.
websites/src/constants/base.ts Added BASE_URI, improved baseUri logic for development fallback.
websites/src/constants/language.ts Added Kotlin to SUPPORTED_LANGUAGES.
websites/src/lib/socket.ts Added Socket.IO client instance with custom config.
websites/src/components/shared/online-coders/* Added animated OnlineCoders UI: floating particles, content display, and main component.
websites/src/components/shared/providers/base-provider.tsx, .../socket-provider.tsx Introduced SocketProvider wrapping children, managing socket lifecycle and OnlineCoders UI.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Browser
    participant SocketProvider
    participant Server
    participant NodeCache

    User->>Browser: Loads app
    Browser->>SocketProvider: Mounts provider
    SocketProvider->>Server: Connects via Socket.IO
    Server->>NodeCache: Adds socket ID to active coders
    NodeCache-->>Server: Current active coder list
    Server->>SocketProvider: Emits "active_coders" event
    SocketProvider->>Browser: Updates OnlineCoders UI with count
    User-->>Browser: Sees live online coder count
    SocketProvider-->>Server: Disconnects on unmount
    Server->>NodeCache: Removes socket ID
    Server->>SocketProvider: Emits updated "active_coders" event
Loading
sequenceDiagram
    participant Tester
    participant Vitest
    participant Docker Compose
    participant Server
    participant Executor (Docker)
    
    Tester->>Vitest: Run test suite
    Vitest->>Docker Compose: Start services
    Vitest->>Server: POST /run (code, language)
    Server->>Executor: Run code in Docker container
    Executor-->>Server: Return output/error
    Server-->>Vitest: Respond with result
    Vitest-->>Tester: Report test outcome
    Vitest->>Docker Compose: Stop and clean up
Loading

Poem

🐇
A hop, a skip, a Kotlin leap,
Now coders count while others sleep.
With sockets live and tests that run,
Our platform grows—so much fun!
Online coders, glowing bright,
Docker builds through day and night.
Hooray for code—let’s do it right!


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 718301f and 5cf622b.

⛔ Files ignored due to path filters (3)
  • browsers/screenshot_executeme.png is excluded by !**/*.png
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • websites/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (31)
  • .github/workflows/ci.yaml (1 hunks)
  • CONTRIBUTING.md (1 hunks)
  • app.js (4 hunks)
  • changelog.md (1 hunks)
  • docker-compose.yaml (1 hunks)
  • docker/Dockerfile.deno (0 hunks)
  • docker/Dockerfile.kotlin (1 hunks)
  • docker/Dockerfile.python (1 hunks)
  • example/index.kt (1 hunks)
  • language/config.js (1 hunks)
  • package.json (2 hunks)
  • scripts.sh (1 hunks)
  • tests/executor.test.js (1 hunks)
  • vitest.config.js (1 hunks)
  • websites/.env.local (0 hunks)
  • websites/package.json (1 hunks)
  • websites/src/app/_components/code-input.tsx (2 hunks)
  • websites/src/app/_components/editor-view/code-editor.tsx (2 hunks)
  • websites/src/app/globals.css (1 hunks)
  • websites/src/app/layout.tsx (1 hunks)
  • websites/src/app/page.tsx (1 hunks)
  • websites/src/components/shared/online-coders/content.tsx (1 hunks)
  • websites/src/components/shared/online-coders/floating-particles.tsx (1 hunks)
  • websites/src/components/shared/online-coders/online-coders.tsx (1 hunks)
  • websites/src/components/shared/online-coders/style.css (1 hunks)
  • websites/src/components/shared/providers/base-provider.tsx (2 hunks)
  • websites/src/components/shared/providers/socket-provider.tsx (1 hunks)
  • websites/src/constants/base-memetadata.ts (1 hunks)
  • websites/src/constants/base.ts (1 hunks)
  • websites/src/constants/language.ts (1 hunks)
  • websites/src/lib/socket.ts (1 hunks)
✨ Finishing Touches
  • 📝 Generate Docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@devlopersabbir devlopersabbir merged commit fbbaa3a into main Jul 2, 2025
3 of 4 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.

2 participants