Skip to content

feat: one-click start/stop - #8

Merged
ADITYA-tp01 merged 1 commit into
mainfrom
feat/one-click
Aug 29, 2026
Merged

feat: one-click start/stop#8
ADITYA-tp01 merged 1 commit into
mainfrom
feat/one-click

Conversation

@ADITYA-tp01

@ADITYA-tp01 ADITYA-tp01 commented Aug 29, 2026

Copy link
Copy Markdown
Owner

User description

Single script to start everything for judges.


CodeAnt-AI Description

Add one-click scripts to start and stop MissionControl

What Changed

  • A Windows start script now checks that Docker is running, starts the required services, waits for the MCP server, installs dashboard dependencies when needed, and launches the dashboard
  • The startup output shows service URLs and clear instructions when Docker is unavailable or the MCP server is not ready
  • A stop script shuts down the running containers with one command

Impact

✅ Faster local setup
✅ Clearer startup failures
✅ One-command shutdown

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

@ADITYA-tp01
ADITYA-tp01 merged commit b0a9fc6 into main Aug 29, 2026
@codeant-ai

codeant-ai Bot commented Aug 29, 2026

Copy link
Copy Markdown

🤖 CodeAnt AI — Review Status

Status Commit Started (UTC) Finished (UTC)
✅ Reviewed your PR 066198e Aug 29, 2026 · 22:00 22:01

@codeant-ai

codeant-ai Bot commented Aug 29, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added the size:M This PR changes 30-99 lines, ignoring generated files label Aug 29, 2026
@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Add one-click MissionControl start and stop scripts

✨ Enhancement 🕐 10-20 Minutes

Grey Divider

AI Description

• Adds a judge-friendly script to launch containers, verify health, and start the dashboard.
• Adds a companion script to stop all Docker Compose services.
Diagram

graph TD
  A["Judge"] --> B["start.ps1"] --> C{"Docker ready?"}
  C -->|Yes| D["Compose services"] --> E["Health probe"] --> F["Dashboard"]
  A --> G["stop.ps1"] -->|down| D
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Wrap existing lifecycle scripts
  • ➕ Avoids duplicating startup and shutdown behavior
  • ➕ Keeps judge and developer workflows synchronized
  • ➕ Can stop the dashboard and auxiliary runtimes consistently
  • ➖ Existing scripts include WSL and TrueForge complexity unnecessary for a minimal judging path
  • ➖ Requires extracting shared steps or adding a simplified mode

Recommendation: Keep the root-level judge entry points, but make them thin wrappers around shared lifecycle functions or a simplified mode in the existing scripts. This preserves one-click usability while preventing drift and allows stop.ps1 to terminate the separately launched dashboard as well as Compose services.

Files changed (2) +74 / -0

Enhancement (2) +74 / -0
start.ps1Add one-click startup orchestration +70/-0

Add one-click startup orchestration

• Adds a root PowerShell entry point that verifies Docker, builds and launches the Compose stack, polls MCP health, installs missing dashboard dependencies, and opens the dashboard development server. It prints actionable status messages and local service URLs for judges.

start.ps1

stop.ps1Add one-click Compose shutdown +4/-0

Add one-click Compose shutdown

• Adds a root PowerShell entry point that runs Docker Compose teardown and reports completion. It stops the containerized services but does not terminate the separately launched dashboard process.

stop.ps1

@github-actions

Copy link
Copy Markdown

Failed to generate code suggestions for PR

Comment thread start.ps1

# Step 2: Start containers
Write-Host "[2/4] Starting containers..." -ForegroundColor Yellow
docker compose up -d --build 2>&1 | Out-Null

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggestion: Docker Compose output and failure status are discarded, so a failed build or container startup is followed by the success message and health polling. Check the Compose exit status and stop the script when the command fails. [logic error]

Severity Level: Major ⚠️
- ❌ Container startup failures are presented as successful launches.
- ⚠️ Judges receive misleading MCP availability status.
- ⚠️ Dashboard startup proceeds against unavailable backend services.

Use CodeAnt Skill Fix in Cursor Fix in VSCode Claude

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** start.ps1
**Line:** 28:28
**Comment:**
	*Logic Error: Docker Compose output and failure status are discarded, so a failed build or container startup is followed by the success message and health polling. Check the Compose exit status and stop the script when the command fails.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

Comment thread start.ps1
Comment on lines +52 to +54
Push-Location $dashboardDir
npm install --silent 2>&1 | Out-Null
Pop-Location

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggestion: The dependency installation output and exit status are discarded. If npm install fails because Node/npm is unavailable or dependencies cannot be resolved, the script still launches npm run dev and prints that the dashboard is starting. Check the installation result and restore the location in a cleanup path before proceeding. [incomplete implementation]

Severity Level: Major ⚠️
- ❌ Dashboard startup can fail after incomplete dependency installation.
- ⚠️ npm, network, and package-resolution errors are hidden.
- ⚠️ Judges receive no actionable installation failure message.

Use CodeAnt Skill Fix in Cursor Fix in VSCode Claude

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** start.ps1
**Line:** 52:54
**Comment:**
	*Incomplete Implementation: The dependency installation output and exit status are discarded. If `npm install` fails because Node/npm is unavailable or dependencies cannot be resolved, the script still launches `npm run dev` and prints that the dashboard is starting. Check the installation result and restore the location in a cleanup path before proceeding.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

Comment thread start.ps1
Comment on lines +56 to +57
Start-Process powershell -ArgumentList "-NoExit", "-Command", "cd '$dashboardDir'; npm run dev"
Write-Host " Dashboard starting on http://localhost:3001" -ForegroundColor Green

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggestion: Start-Process only launches the child PowerShell asynchronously; it does not verify that Next.js successfully binds to port 3001. A port conflict or compilation/runtime failure therefore still produces both the dashboard success message and the final “Everything is running” banner. Poll the dashboard endpoint or otherwise verify the child process before reporting success. [api mismatch]

Severity Level: Major ⚠️
- ❌ Dashboard may be unavailable despite a green startup banner.
- ⚠️ Port conflicts and compilation failures require manual diagnosis.
- ⚠️ Judges may attempt to use a non-running dashboard.

Use CodeAnt Skill Fix in Cursor Fix in VSCode Claude

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** start.ps1
**Line:** 56:57
**Comment:**
	*Api Mismatch: `Start-Process` only launches the child PowerShell asynchronously; it does not verify that Next.js successfully binds to port 3001. A port conflict or compilation/runtime failure therefore still produces both the dashboard success message and the final “Everything is running” banner. Poll the dashboard endpoint or otherwise verify the child process before reporting success.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

Comment thread stop.ps1
Comment on lines +3 to +4
docker compose down
Write-Host "Done." -ForegroundColor Green

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Suggestion: The stop script only tears down Docker containers and leaves the dashboard PowerShell/Next.js process created by start.ps1 running on port 3001. Consequently, “Done” does not mean that everything started by the paired start script has stopped, and later starts can encounter the stale dashboard process. Track and terminate the dashboard process as part of shutdown. [incomplete implementation]

Severity Level: Major ⚠️
- ❌ Stop does not terminate everything started by start.ps1.
- ⚠️ Dashboard remains available after containers are removed.
- ⚠️ Subsequent starts can encounter port 3001 conflicts.

Use CodeAnt Skill Fix in Cursor Fix in VSCode Claude

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** stop.ps1
**Line:** 3:4
**Comment:**
	*Incomplete Implementation: The stop script only tears down Docker containers and leaves the dashboard PowerShell/Next.js process created by `start.ps1` running on port 3001. Consequently, “Done” does not mean that everything started by the paired start script has stopped, and later starts can encounter the stale dashboard process. Track and terminate the dashboard process as part of shutdown.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (6) 📘 Rule violations (0) 📜 Skill insights (0)

Grey Divider


Action required

1. Stop leaves dashboard running 🐞 Bug ≡ Correctness
Description
start.ps1 launches the dashboard in a separate PowerShell/Node process, but stop.ps1 only shuts
down Compose containers. Running the advertised stop script therefore leaves the dashboard listening
on port 3001.
Code

stop.ps1[R2-3]

+Write-Host "Stopping containers..." -ForegroundColor Yellow
+docker compose down
Relevance

●●● Strong

Recent accepted precedent requires stopping project-owned dashboard processes and avoiding unrelated
processes.

PR-#5

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The dashboard's npm run dev command binds port 3001 and is launched outside Compose, while the new
stop script only calls docker compose down. The existing stop flow explicitly handles
project-owned listeners, and the accepted prior review establishes that shutdown must avoid
unrelated processes.

start.ps1[48-57]
apps/dashboard/package.json[5-8]
scripts/stop-all.ps1[8-37]
PR-#5

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The stop script does not terminate the dashboard process created by the start script.

## Issue Context
Record the dashboard PID during startup and terminate that exact process during shutdown, or perform command-line/working-directory verification before stopping it so unrelated Node processes are never killed.

## Fix Focus Areas
- start.ps1[48-57]
- stop.ps1[1-4]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Compose uses caller directory 🐞 Bug ≡ Correctness
Description
Both scripts invoke Docker Compose without changing to $PSScriptRoot or supplying the repository
Compose file, so execution from another directory can fail or operate on an unrelated Compose
project. This breaks absolute-path and shell-context launches expected from a one-click script.
Code

start.ps1[R27-28]

+Write-Host "[2/4] Starting containers..." -ForegroundColor Yellow
+docker compose up -d --build 2>&1 | Out-Null
Relevance

●●● Strong

Recent accepted precedent fixes Windows Compose invocation portability in one-click scripts.

PR-#5

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The sole Compose definition is at the repository root, and the scripts do not establish that root
before invoking Compose; start.ps1 already uses $PSScriptRoot for the dashboard, proving caller
location and repository location are treated differently.

docker-compose.yml[1-2]
start.ps1[26-29]
start.ps1[48-56]
stop.ps1[1-4]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Compose resolves its project from the caller's current directory rather than the directory containing these scripts.

## Issue Context
Invoke Compose with an explicit script-relative `-f` path and project directory, or temporarily enter `$PSScriptRoot` with guaranteed location restoration. Apply the same behavior to startup and shutdown.

## Fix Focus Areas
- start.ps1[26-29]
- stop.ps1[2-3]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Agent runtime never starts 🐞 Bug ≡ Correctness
Description
start.ps1 declares everything running after launching only Compose and the dashboard, but it never
starts the LiteLLM bridge or TrueForge runtime required for the incident-response agent. Judges
therefore get a dashboard and MCP sidecar without the agent workflow the application is built to
demonstrate.
Code

start.ps1[R56-57]

+Start-Process powershell -ArgumentList "-NoExit", "-Command", "cd '$dashboardDir'; npm run dev"
+Write-Host "  Dashboard starting on http://localhost:3001" -ForegroundColor Green
Relevance

●● Moderate

One-click lifecycle omissions matter, but available evidence concerns startup implementation rather
than this exact missing runtime.

PR-#5

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The dashboard command only starts Next.js on port 3001, while the documented complete lifecycle
separately starts LiteLLM and TrueForge and configures the dashboard to use TrueForge on port 3000.

apps/dashboard/package.json[5-8]
.env.example[3-15]
README.md[83-89]
scripts/start-all.ps1[46-72]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The one-click script does not start LiteLLM or TrueForge, so the agent workflow remains unavailable even though the script reports that everything is running.

## Issue Context
Reuse or invoke the repository's existing WSL-aware startup flow, including MCP registration and dashboard TrueForge URL configuration.

## Fix Focus Areas
- start.ps1[31-67]
- scripts/start-all.ps1[39-113]
- scripts/start-all.ps1[115-185]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

4. Install failures are hidden 🐞 Bug ☼ Reliability
Description
On a clean checkout, a failed npm install is silenced and not checked before npm run dev is
launched. The script then reports the dashboard and entire system as running even though
dependencies may be absent and the dashboard process exits or fails.
Code

start.ps1[R51-54]

+if (-not (Test-Path "$dashboardDir\node_modules")) {
+    Push-Location $dashboardDir
+    npm install --silent 2>&1 | Out-Null
+    Pop-Location
Relevance

●● Moderate

Failure masking is plausible, but history lacks a close npm-install-specific precedent.

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
Installation runs precisely when node_modules is absent, but its output is discarded and no
exit-code check exists before launching the dashboard. The dashboard package declares the Next.js
command and dependencies needed for that launch.

start.ps1[48-57]
apps/dashboard/package.json[5-33]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Dependency installation failures are discarded and startup proceeds with an unusable dashboard.

## Issue Context
Preserve actionable npm error output, check the native exit code, and stop before launching the dashboard when installation fails. Ensure location restoration with `try`/`finally` or use a working-directory option.

## Fix Focus Areas
- start.ps1[48-57]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Informational

5. Compose failures report success 🐞 Bug ☼ Reliability
Description
docker compose up can return nonzero for configuration, build, or startup failures, but the script
discards its output, never checks $LASTEXITCODE, and immediately prints that all containers
started. It then continues to the dashboard and ultimately reports that everything is running even
after the MCP health check times out.
Code

start.ps1[R28-29]

+docker compose up -d --build 2>&1 | Out-Null
+Write-Host "  PostgreSQL, Redis, MCP server started" -ForegroundColor Green
Relevance

● Weak

Recent precedent rejected requiring startup to fail instead of continuing after health-check
failure.

PR-#5

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The script explicitly checks $LASTEXITCODE for docker info, but omits the same required
native-command check for Compose and emits success unconditionally. The Compose file defines the
PostgreSQL, Redis, and MCP services whose startup is being claimed.

start.ps1[10-24]
start.ps1[26-29]
docker-compose.yml[1-46]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Compose startup failures are suppressed and followed by unconditional success messages.

## Issue Context
Capture useful error output, check the native command's exit code, and terminate startup before health checks or dashboard launch when Compose fails.

## Fix Focus Areas
- start.ps1[26-29]
- start.ps1[31-46]
- start.ps1[59-67]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


6. Shutdown failures report completion 🐞 Bug ☼ Reliability
Description
stop.ps1 unconditionally prints Done after docker compose down, even when Docker or Compose
returns a nonzero exit code and the containers remain running. The stop command therefore provides a
false successful result instead of propagating the shutdown failure.
Code

stop.ps1[R3-4]

+docker compose down
+Write-Host "Done." -ForegroundColor Green
Relevance

● Weak

Recent precedent rejected converting partial startup failures into nonzero failure while continuing
the workflow.

PR-#5

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The shutdown command has no error handling and the completion message is unconditional; the startup
script's explicit $LASTEXITCODE check for docker info demonstrates that native Docker failures
require manual handling in this script style.

stop.ps1[1-4]
start.ps1[10-24]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The stop script reports success even when Compose shutdown fails.

## Issue Context
Set fail-fast behavior, check the native command exit code, emit an actionable error, and return a nonzero script exit code when shutdown is unsuccessful.

## Fix Focus Areas
- stop.ps1[1-4]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Context sources
Review mode: ⚖️ Balanced

Grey Divider

Tip of the day
💡 Did you know, you can group findings by type and pick your Finding display, from Minimal to Full

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment thread start.ps1
Comment on lines +56 to +57
Start-Process powershell -ArgumentList "-NoExit", "-Command", "cd '$dashboardDir'; npm run dev"
Write-Host " Dashboard starting on http://localhost:3001" -ForegroundColor Green

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

1. Agent runtime never starts 🐞 Bug ≡ Correctness

start.ps1 declares everything running after launching only Compose and the dashboard, but it never
starts the LiteLLM bridge or TrueForge runtime required for the incident-response agent. Judges
therefore get a dashboard and MCP sidecar without the agent workflow the application is built to
demonstrate.
Agent Prompt
## Issue description
The one-click script does not start LiteLLM or TrueForge, so the agent workflow remains unavailable even though the script reports that everything is running.

## Issue Context
Reuse or invoke the repository's existing WSL-aware startup flow, including MCP registration and dashboard TrueForge URL configuration.

## Fix Focus Areas
- start.ps1[31-67]
- scripts/start-all.ps1[39-113]
- scripts/start-all.ps1[115-185]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment thread stop.ps1
Comment on lines +2 to +3
Write-Host "Stopping containers..." -ForegroundColor Yellow
docker compose down

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

2. Stop leaves dashboard running 🐞 Bug ≡ Correctness

start.ps1 launches the dashboard in a separate PowerShell/Node process, but stop.ps1 only shuts
down Compose containers. Running the advertised stop script therefore leaves the dashboard listening
on port 3001.
Agent Prompt
## Issue description
The stop script does not terminate the dashboard process created by the start script.

## Issue Context
Record the dashboard PID during startup and terminate that exact process during shutdown, or perform command-line/working-directory verification before stopping it so unrelated Node processes are never killed.

## Fix Focus Areas
- start.ps1[48-57]
- stop.ps1[1-4]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment thread start.ps1
Comment on lines +27 to +28
Write-Host "[2/4] Starting containers..." -ForegroundColor Yellow
docker compose up -d --build 2>&1 | Out-Null

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

3. Compose uses caller directory 🐞 Bug ≡ Correctness

Both scripts invoke Docker Compose without changing to $PSScriptRoot or supplying the repository
Compose file, so execution from another directory can fail or operate on an unrelated Compose
project. This breaks absolute-path and shell-context launches expected from a one-click script.
Agent Prompt
## Issue description
Compose resolves its project from the caller's current directory rather than the directory containing these scripts.

## Issue Context
Invoke Compose with an explicit script-relative `-f` path and project directory, or temporarily enter `$PSScriptRoot` with guaranteed location restoration. Apply the same behavior to startup and shutdown.

## Fix Focus Areas
- start.ps1[26-29]
- stop.ps1[2-3]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment thread start.ps1
Comment on lines +51 to +54
if (-not (Test-Path "$dashboardDir\node_modules")) {
Push-Location $dashboardDir
npm install --silent 2>&1 | Out-Null
Pop-Location

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Remediation recommended

5. Install failures are hidden 🐞 Bug ☼ Reliability

On a clean checkout, a failed npm install is silenced and not checked before npm run dev is
launched. The script then reports the dashboard and entire system as running even though
dependencies may be absent and the dashboard process exits or fails.
Agent Prompt
## Issue description
Dependency installation failures are discarded and startup proceeds with an unusable dashboard.

## Issue Context
Preserve actionable npm error output, check the native exit code, and stop before launching the dashboard when installation fails. Ensure location restoration with `try`/`finally` or use a working-directory option.

## Fix Focus Areas
- start.ps1[48-57]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M This PR changes 30-99 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant