Skip to content

Adds Codex Playground feature #26

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open

Adds Codex Playground feature #26

wants to merge 5 commits into from

Conversation

thegovind
Copy link
Collaborator

This pull request introduces a "Codex Playground" feature, allowing users to execute natural language coding tasks within a specified repository using GitHub Actions.

Key changes include:

  • Creation of a new workflow (codex-playground.yml) to execute Codex tasks via GitHub Actions.
  • Addition of API endpoints to trigger tasks and fetch their statuses/logs.
  • A new frontend component (PlaygroundModal) to provide a user interface for specifying tasks and monitoring their execution.
  • Instructions in .github/copilot-instructions.md to guide agent integration with GitHub actions.

Implements a "Codex Playground" feature that allows users to run natural language coding tasks in a sandboxed GitHub Actions environment.

This involves:
- Creating a new GitHub Actions workflow (`codex-playground.yml`) that executes the specified task.
- Adding API endpoints to start tasks, check task status, and retrieve logs.
- Implementing a new UI component (PlaygroundModal) to interact with the new endpoints.
- Adds copilot setup steps to ease the integration with Copilot.
- Adds general guidelines for Copilot.
@thegovind thegovind requested a review from Copilot June 18, 2025 00:00
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds a Codex Playground feature to allow users to run natural language coding tasks via GitHub Actions. Key changes include:

  • A new GitHub Actions workflow (codex-playground.yml) that dispatches tasks.
  • New API endpoints and schemas in the backend for starting tasks and retrieving their statuses/logs.
  • A new UI component (PlaygroundModal) in the frontend with integrated task polling and example prompts.

Reviewed Changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
frontend/tsconfig.tsbuildinfo Updated build info with a new entry for MultiDevinModal.
frontend/src/components/ui/PlaygroundModal.tsx New modal component to collect and submit Codex tasks and display task status updates.
frontend/src/components/HomePage.tsx Default agent category updated to 'all'.
frontend/src/components/AgentCard.tsx Added a Playground button and integrated the PlaygroundModal component for the codex-cli agent.
frontend/src/App.css Added styling for the PlaygroundModal and its associated elements.
backend/app/services/github.py Added functions for creating runner tokens, dispatching workflows, and retrieving logs/runs.
backend/app/models/schemas.py New schemas added to support Codex Playground requests and responses.
backend/app/main.py New endpoints to start a playground task, check task status, and download logs.
.github/workflows/copilot-setup-steps.yml Workflow for validating Copilot setup changes.
.github/workflows/codex-playground.yml Workflow definition for Codex Playground tasks with a disabled job.
.github/copilot-instructions.md Updated integration instructions for GitHub Actions and general coding guidelines.
Comments suppressed due to low confidence (3)

frontend/src/components/AgentCard.tsx:237

  • The code splits the 'repoName' prop to derive the owner and repository values. Ensure that 'repoName' is always in the format 'owner/repo' or consider passing these values explicitly to avoid potential mismatches.
          repoOwner={repoName?.split('/')[0] || ''}

.github/workflows/codex-playground.yml:20

  • The default value for 'azure_openai_deployment' in the workflow ('o4-mini') is inconsistent with the defaults used in the frontend and backend ('gpt-4o'). Consider unifying these defaults.
        default: "o4-mini"

backend/app/main.py:393

  • Relying on substring matching of 'task_id' in the html_url to identify workflow runs may be unreliable; consider including the task_id explicitly in the workflow inputs or another stable identifier for mapping.
            if task_id in str(run.get("html_url", "")):

thegovind and others added 4 commits June 17, 2025 17:01
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Adds the ability to manually input tasks, as an alternative to auto-generating them. This feature provides flexibility to specify exact work for the agent to perform. It also includes basic styling for the manual tasks list, headers, and navigation tab.

Removes frontend pnpm lock file and tsbuildinfo from the repository and adds it to git ignore.
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